📄 osd.c
字号:
#include "mtv212mn32.h"
#include "I2C.h"
#include "osd.h"
#include "gen.h"
#include "intpro.h"
#include "comm.h"
#include "Ic_ctrl.h"
#include "eeprom.h"
#include <intrins.h>
int a;//根据相应寄存器的设定值而定
int b;//根据相应的寄存器的设定值而定
BYTE idata LanguageIndex=0;
BYTE idata ColorTempIndex=0;
BYTE idata OSDIndex=0 ;
BYTE idata cursor;
BYTE data osd[2];
BYTE data Scroll[15];
BYTE data Percent[5];
bit AdjustFlag=0;
bit entermenu=0;
BYTE pdata Showhfr[11];
BYTE pdata Showvfr[10];
unsigned char Adckey_buf;
//extern unsigned char Adckey_buf;
//unsigned char idata CurrentModel=0;
int maxpre,minper;
unsigned char max,min;
void Show_HFre (BYTE StartX,BYTE StartY,EndX,EndY,BYTE * DisData,BYTE * DisDataA);
void Show_VFre (BYTE StartX,BYTE StartY,EndX,EndY,BYTE * DisData,BYTE * DisDataA);
void ShowParScroll(BYTE StartX,EndX,BYTE *DisData,BYTE *DisDataA);
void ShowParPercent(BYTE StartX,EndX,BYTE *DisData,BYTE *DisDataA);
void CursorXY(BYTE cx,BYTE cy,BYTE Color);
void OsdItem(BYTE x,BYTE ENDx,BYTE y,BYTE z,BYTE *DisData,BYTE *DisDataA,BYTE *DisDataB);
void UpdateOsd(void);
void UpdateOsd1(void);
void UpdateOsd2(void);
void ShowTimingNum(void);
void IcParCtrl(void);
void CloseOsd(void);
void OpenOsd(void);
void Long_Press_Select(void);
void ShowVacancy(BYTE X,EndX,BYTE *DisData);
void ShowUserColor(void);
void MoveCursor1(char delta);
void MoveCursor2(char delta);
void Adjust(void);
void Adjust1(void);
void Adjust2(void);
void RegPercent(void);
void Show_Bright_Menu(void);
void Show_Contrast_Menu(void);
void Show_HVfre_InfoPat(void);
void Show_BurninInfo_Pat(void);
void Show_Info_Win(void);
void Show_Over_Fre(void);
void Show_String(BYTE x, BYTE ENDx, BYTE y, BYTE * DisData);
void Show_Burnin_Time(void);
void Show_Burnin_Timing(void);
void Show_Burnin_Pattern(void);
void Show_Burnin_Hsize(void);
void Key_Scan(void);
void Key_Process(void)
{
unsigned char oldkey_buf;
Key_Scan();
oldkey_buf=Adckey_buf;
Key_Scan();
if(oldkey_buf!=Adckey_buf) return;
if(oldkey_buf==0) return;
switch(Adckey_buf){
case Menu: Flg_Key_Lock=1;
if(cursor==0) ShowMainMenu();
else {if(OSDIndex==2) Adjust2();
if(OSDIndex==1) Adjust1();
if(OSDIndex==0) Adjust();
}
while(1)
{
Key_Scan();
if(Adckey_buf==0)
{
miscDelay(50);
Key_Scan();
if(Adckey_buf==0)break;
}
}
break;
case Up:if (Flg_Key_Lock==0) {Show_Bright_Menu();Flg_Key_Lock=2;}
else {if(OSDIndex==0) MoveCursor(1);
if(OSDIndex==1) MoveCursor1(1);
if(OSDIndex==2) MoveCursor2(1);
miscDelay(50);
}
break;
case Down:if (Flg_Key_Lock==0) {Show_Contrast_Menu();Flg_Key_Lock=2;}
else{if(OSDIndex==0) MoveCursor(-1);
if(OSDIndex==1) MoveCursor1(-1);
if(OSDIndex==2) MoveCursor2(-1);
miscDelay(50);
}
break;
case Exit:if (Flg_Key_Lock==0) { PIN_DEGAUSS=1;
miscDelay(500);
PIN_DEGAUSS=0;
}
else {CloseOsd();OSDIndex=0;Flg_Key_Lock=0;}
tab4:
Key_Scan();
if(Adckey_buf!=0)goto tab4;
miscDelay(50);
break;
default:
break;
}
}
void Key_Scan(void)
{
unsigned char a;
a=XFR_ADC&0x3f;
if(a>0x29&&a<0x2f) Adckey_buf=Menu;
else if(a>0x18&&a<0x1e) Adckey_buf=Up;
else if(a>0x0a&&a<0x15) Adckey_buf=Down;
else if(a<0x03) Adckey_buf=Exit;
else Adckey_buf=0;
}
BYTE code ScrollColor[]={0x77,0x77,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x77,0x77};
BYTE code ScrollColor1[]={0x77,0x77,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x77,0x77};
BYTE code ab[][2]={
0x00,0x3f,
0x00,0x3f,
0x00,0xff,
0x00,0xff,
0x00,0xfe,
0x00,0xfe,
0x00,0x3f,
0x00,0xff,
0x00,0x0f,
0x00,0xff,
0x00,0xff,
};
BYTE code ab1[][2]={
0x00,0x0f,
0x00,0x1f,
0x00,0x1f,
0x00,0x07,
};
BYTE code Num[10][2]={
0x0a,0x01,
0x0a,0x02,
0x0a,0x03,
0x0a,0x04,
0x0a,0x05,
0x0a,0x06,
0x0a,0x07,
0x0a,0x08,
0x0a,0x09,
0x01,0x0a,
};
BYTE code User[]={
0x1f,0x1d,0x0f,0x1c,0x00,0x1e,0x13,0x17,0x13,0x18,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
BYTE code Factory[]={
0x10,0x0b,0x0d,0x1e,0x19,0x1c,0x23,0x00,0x1e,0x13,0x17,0x13,0x18,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
BYTE code HVfre_Mode0[]={
0x00,0x12,0x7c,0x27,0x03,0x01,0x77,0x05,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x07,0x0a,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode1[]={
0x00,0x12,0x7c,0x27,0x03,0x01,0x77,0x05,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x27,0x06,0x0a,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode2[]={
0x00,0x12,0x7c,0x27,0x03,0x07,0x77,0x05,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x27,0x07,0x05,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode3[]={
0x00,0x12,0x7c,0x27,0x04,0x03,0x77,0x03,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x27,0x08,0x05,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode4[]={
0x00,0x12,0x7c,0x28,0x04,0x06,0x77,0x09,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x07,0x05,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode5[]={
0x00,0x12,0x7c,0x27,0x05,0x03,0x77,0x07,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x08,0x05,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode6[]={
0x00,0x12,0x7c,0x28,0x04,0x08,0x77,0x04,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x06,0x0a,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode7[]={
0x00,0x12,0x7c,0x28,0x06,0x0a,0x77,0x0a,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x07,0x05,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode8[]={
0x00,0x00,0x00,0x28,0x06,0x08,0x77,0x07,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x08,0x05,0x77,0x0a,0x26,0x00};
BYTE code HVfre_Mode9[]={
0x00,0x12,0x7c,0x28,0x06,0x03,0x77,0x09,0x15,0x26,0x00,0x00,0x00,0x20,0x7c,0x28,0x06,0x0a,0x77,0x0a,0x26,0x00};
BYTE code ResStr_640X350[]={ // 640X350分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x0a,0x22,0x03,0x05,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_640X377[]={ // 640X377分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x0a,0x22,0x03,0x07,0x07,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_640X400[]={ // 640X400分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x0a,0x22,0x04,0x00,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_720X350[]={ // 720X350分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x02,0x0a,0x22,0x03,0x05,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_720X400[]={ // 720X400分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x02,0x0a,0x22,0x04,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_640X480[]={ // 640X480分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x0a,0x22,0x04,0x08,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_800X600[]={ // 800X600分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0a,0x0a,0x22,0x06,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_832X624[]={ // 832X624分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x03,0x02,0x22,0x06,0x02,0x04,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1024X768[]={ // 1024X768分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0a,0x02,0x04,0x22,0x07,0x06,0x08,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1024X800[]={ // 1024X800分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0a,0x02,0x04,0x22,0x08,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1120X750[]={ // 1120X750分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x0a,0x22,0x07,0x05,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1152X800[]={ // 1152X800分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x02,0x22,0x08,0x06,0x04,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1152X864[]={ // 1152X864分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x02,0x22,0x08,0x06,0x04,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1152X870[]={ // 1152X870分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x02,0x22,0x08,0x07,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1152X900[]={ // 1152X900分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x02,0x22,0x09,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1280X720[]={ // 1280X720分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x08,0x0a,0x22,0x07,0x02,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1280X960[]={ // 1280X960分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x08,0x0a,0x22,0x09,0x06,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1280X1024[]={ // 1280X1024分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x08,0x0a,0x22,0x01,0x0a,0x02,0x04,0x00,0x00,0x00,0x00};
BYTE code ResStr_1600X1200[]={ // 1600X1200分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x0a,0x0a,0x22,0x01,0x02,0x0a,0x0a,0x00,0x00,0x00,0x00};
BYTE code ResStr_1792X1344[]={ // 1792X1344分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x09,0x02,0x22,0x01,0x03,0x04,0x04,0x00,0x00,0x00,0x00};
BYTE code ResStr_1856X1392[]={ // 1856X1392分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x08,0x05,0x06,0x22,0x01,0x03,0x09,0x02,0x00,0x00,0x00,0x00};
BYTE code ResStr_1920X540[]={ // 1920X540分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09,0x02,0x0a,0x22,0x05,0x04,0x0a,0x00,0x00,0x00,0x00,0x00};
BYTE code ResStr_1920X1440[]={ // 1920X1440分辨率字符串
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x09,0x02,0x0a,0x22,0x01,0x04,0x04,0x0a,0x00,0x00,0x00,0x00};
BYTE code ResStr_NewMode[]={ // NEW MODE
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0f,0x21,0x00,0x17,0x19,0x0e,0x0f,0x00,0x00,0x00,0x00,0x00};
/* 显示模式相关的一些参数,数据组织的格式如下:
行频,场频,行场极性,场幅度控制,分辨率字符串 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -