📄 osd.c
字号:
}
void GetFactoryData(void)
{
unsigned char temp;
temp=(CurrentModel-1)*10+0x78;
ModelPara.HSize=eepByteIn(temp);
ModelPara.HPos=eepByteIn(temp+1);
ModelPara.VSize=eepByteIn(temp+2);
ModelPara.VPos=eepByteIn(temp+3);
ModelPara.Pincushion=eepByteIn(temp+4);
ModelPara.Trape=eepByteIn(temp+5);
ModelPara.Paralle=eepByteIn(temp+6);
ModelPara.SidePin=eepByteIn(temp+7);
ModelPara.HCorner=eepByteIn(temp+8);
}
void GetUserData(void)
{
unsigned char temp;
temp=(CurrentModel-1)*10+0xdc;
ModelPara.HSize=eepByteIn(temp);
ModelPara.HPos=eepByteIn(temp+1);
ModelPara.VSize=eepByteIn(temp+2);
ModelPara.VPos=eepByteIn(temp+3);
ModelPara.Pincushion=eepByteIn(temp+4);
ModelPara.Trape=eepByteIn(temp+5);
ModelPara.Paralle=eepByteIn(temp+6);
ModelPara.SidePin=eepByteIn(temp+7);
ModelPara.HCorner=eepByteIn(temp+8);
}*/
void ShowPicture(BYTE StartX,BYTE StartY,EndX,EndY,BYTE * DisData,BYTE * DisDataA)
{
BYTE i,mm;
GoI2CMaster(0x7A);
for(i=StartY;i<EndY;i++)
{
SendI2CByte(0x80+i);
SendI2CByte(0x1E);
SendI2CByte(0x00);//设置第一行字符的高度
for(mm=StartX;mm<EndX;mm++)
{
SendI2CByte(0x80+i);
SendI2CByte(mm); //Character
SendI2CByte(*DisData);
DisData++;
SendI2CByte(0xa0+i);
SendI2CByte(mm); //BackGround
SendI2CByte(*DisDataA);
DisDataA++;
}
}
SendI2CStop();
}
//---------------------------------------------------------------
//--------------------------------------------------------------
void ShowMainMenu(void)
{
ShowPicture(3,3,25,12,OSDMain,OSDMainA);
ShowPicture(3,1,25,2,ModeChar_Table[CurrentModel].ResStr,OSDMainB);
ShowPicture(3,2,25,3,ModeChar_Table[CurrentModel].HVfre,OSDMainB);
ShowTimingNum();
//ShowHfreq();
ShowParPercent(12,17,Percent,OSDMain1);
OpenOsd();
cursor=1;
MoveCursor(0);
}
void ShowUserColor(void)
{
ShowPicture(3,3,25,10,OSDMain2,OSDMainA);
//ShowParPercent(12,16,Percent,OSDMain1);
// ShowParScroll(6, 22,Scroll, ScrollColor);
OpenOsd();
cursor=1;
MoveCursor1(0);
}
void ShowAdvanceMenu(void)
{
ShowPicture(3,3,25,10,OSDMain3,OSDMainA);
OpenOsd();
cursor=1;
MoveCursor2(0);
}
void ShowTimingNum(void)
{
if (CurrentModel<10) {
ShowPicture(3,11,25,12,Factory,OSDMainB);
ShowPicture(18,11,20,12,Num[CurrentModel],OSDMainB);
}
else ShowPicture(3,11,25,12,User,OSDMainA);
}
//------------------------------------------------------------
void Adjust(void)
{
if(cursor<12){
AdjustFlag=!AdjustFlag;
if(AdjustFlag) CursorXY(OSDPos[cursor-1][0],OSDPos[cursor-1][1],0x47);
else CursorXY(OSDPos[cursor-1][0],OSDPos[cursor-1][1],0x17);
RegPercent();
ShowParScroll(6,22,Scroll,ScrollColor1);
ShowParPercent(12,17,Percent,OSDMain1);
}
if(cursor==12){
if(Adckey_buf==Menu){
PIN_DEGAUSS=1;miscDelay(1000);PIN_DEGAUSS=0;
}
}
if(cursor==13){
if(Adckey_buf==Menu) LanguageIndex+=1;
if (LanguageIndex>5) LanguageIndex=0;
UpdateOsd();
}
if(cursor==14){
if(Adckey_buf==Menu){OSDIndex=1;
ShowUserColor();Adckey_buf=0;
MoveCursor1(0);UpdateOsd1();miscDelay(300);
// if(cursor==1){if (Adckey_buf==Menu){OSDIndex=0;ShowMainMenu();UpdateOsd();Adckey_buf=0;}}
}
}
if(cursor==15){
if(Adckey_buf==Menu) ColorTempIndex+=1;
if(ColorTempIndex>2) ColorTempIndex=0;
UpdateOsd();
}
if(cursor==16){
if(Adckey_buf==Menu)
{
Write_TDA4886_Reg(0x01,0x0f);
Write_TDA4886_Reg(0x02,0x3f);
Write_TDA4886_Reg(0x03,0x0d);
Write_TDA4886_Reg(0x04,0x3f);
Write_TDA4886_Reg(0x05,0x3f);
Write_TDA4886_Reg(0x06,0x3f);
Write_TDA4886_Reg(0x07,0x50);
Write_TDA4886_Reg(0x08,0x50);
Write_TDA4886_Reg(0x09,0x50);
Write_TDA48XX_Reg(0x00,0x0f);
Write_TDA48XX_Reg(0x02,0x32);
Write_TDA48XX_Reg(0x03,0x3f);
Write_TDA48XX_Reg(0x04,0xf7);
Write_TDA48XX_Reg(0x05,0x80);
Write_TDA48XX_Reg(0x06,0x80);
Write_TDA48XX_Reg(0x07,0x80);
Write_TDA48XX_Reg(0x08,0x80);
Write_TDA48XX_Reg(0x09,0x03);
Write_TDA48XX_Reg(0x0a,0xe0);
Write_TDA48XX_Reg(0x0c,0xaf);
}
}
if (cursor==17){
if (Adckey_buf==Menu) {
OSDIndex=2;
ShowAdvanceMenu();
MoveCursor2(0);UpdateOsd2();miscDelay(300);
}
}
if (cursor==18){if (Adckey_buf==Menu) CloseOsd();}
}
void Adjust1(void)
{
if(cursor==1){OSDIndex=0;cursor=1;ShowMainMenu();return;}
if(OSDIndex==1&&cursor>1&&cursor<5)
{
// if(cursor==1){OSDIndex=0;cursor=1;ShowMainMenu();return;}
AdjustFlag=!AdjustFlag;
if(AdjustFlag) CursorXY(OSDPos1[cursor-1][0],OSDPos1[cursor-1][1],0x47);
else CursorXY(OSDPos1[cursor-1][0],OSDPos1[cursor-1][1],0x17);
ShowParScroll(6,22,Scroll,ScrollColor1);
ShowParPercent(12,17,Percent,OSDMain1);
}
}
void Adjust2(void)
{
if (cursor==1){OSDIndex=0;cursor=1;ShowMainMenu();return;}
if (OSDIndex==2&&cursor>1&&cursor<6)
{AdjustFlag=!AdjustFlag;
if (AdjustFlag) CursorXY(OSDPos2[cursor-1][0],OSDPos2[cursor-1][1],0x47);
else CursorXY(OSDPos2[cursor-1][0],OSDPos2[cursor-1][1],0x17);
ShowParScroll(6,22,Scroll,ScrollColor1);
ShowParPercent(12,17,Percent,OSDMain1);
}
if (cursor==1){Adckey_buf=0;
if (Adckey_buf==Menu) ShowMainMenu();}
}
//-------------------------------------------------------------
void CursorXY(BYTE cx,BYTE cy,BYTE Color)
{
GoI2CMaster(0x7A);
SendI2CByte(0xa0+cy);
SendI2CByte(cx); //BackGround
SendI2CByte(Color); //设置显示字符画面,其中高4位为字符的背景色,低4位为字符颜色
SendI2CByte(0xa0+cy);
SendI2CByte(cx+1); //BackGround
SendI2CByte(Color); //设置显示字符画面,其中高4位为字符的背景色,低4位为字符颜色
SendI2CStop();
}
//-------------------------------------------------------
void UpdateOsd(void)
{
BYTE cx;
for(cx=0;cx<18;cx++)
{
CursorXY(OSDPos[cx][0],OSDPos[cx][1],0x70);
}
CursorXY(OSDPos[cursor-1][0],OSDPos[cursor-1][1],0x17);
if(cursor==1) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[0],Bri[LanguageIndex],OSDMain1); }
if(cursor==2) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[1],Con[LanguageIndex],OSDMain1);}
if(cursor==3) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[2],H_s[LanguageIndex],OSDMain1); }
if(cursor==4) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[3],H_p[LanguageIndex],OSDMain1); }
if(cursor==5) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[4],V_s[LanguageIndex],OSDMain1); }
if(cursor==6) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[5],V_p[LanguageIndex],OSDMain1); }
if(cursor==7) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[6],Pin[LanguageIndex],OSDMain1); }
if(cursor==8) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[7],Tra[LanguageIndex],OSDMain1);}
if(cursor==9) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[8],Par[LanguageIndex],OSDMain1); }
if(cursor==10) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[9],Zoo[LanguageIndex],OSDMain1); }
if(cursor==11) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe[10],Rot[LanguageIndex],OSDMain1); }
if(cursor==12) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[11],Deg[LanguageIndex],OSDMain1); }//}
if(cursor==13) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[12],Lan[LanguageIndex],OSDMain1); }//}
if(cursor==14) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[13],U_c[LanguageIndex],OSDMain1); }//}
if(cursor==15) {ShowVacancy(12,17,ColorT[ColorTempIndex]);OsdItem(6,22,5,6,OsdMe[14],C_t[LanguageIndex],OSDMain1); }//}
if(cursor==16) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[15],Rec[LanguageIndex],OSDMain1); }//}
if(cursor==17) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[16],Adv[LanguageIndex],OSDMain1);}//}
if(cursor==18) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe[17],Exi[LanguageIndex],OSDMain1);}//ShowParPercent(12,16,Percent);}
}
void UpdateOsd1(void)
{
BYTE cx;
for(cx=0;cx<4;cx++)
{
CursorXY(OSDPos1[cx][0],OSDPos1[cx][1],0x70);
}
CursorXY(OSDPos1[cursor-1][0],OSDPos1[cursor-1][1],0x17);
if(cursor==1) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe1[0],Ret[LanguageIndex],OSDMain1); }
if(cursor==2) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe1[1],R_g[LanguageIndex],OSDMain1);}
if(cursor==3) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe1[2],G_g[LanguageIndex],OSDMain1);}
if(cursor==4) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe1[3],B_g[LanguageIndex],OSDMain1);}
}
void UpdateOsd2(void)
{
BYTE cx;
for(cx=0;cx<5;cx++)
{
CursorXY(OSDPos2[cx][0],OSDPos2[cx][1],0x70);
}
CursorXY(OSDPos2[cursor-1][0],OSDPos2[cursor-1][1],0x17);
if(cursor==1) {ShowVacancy(12,17,Vacancy);OsdItem(6,22,5,6,OsdMe1[0],Ret[LanguageIndex],OSDMain1); }
if(cursor==2) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe2[1],Sid[LanguageIndex],OSDMain1);}
if(cursor==3) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe2[2],H_c[LanguageIndex],OSDMain1);}
if(cursor==4) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe2[3],Hmo[LanguageIndex],OSDMain1);}
if(cursor==5) {ShowParPercent(12,17,Percent,OSDMain1);OsdItem(6,22,5,6,OsdMe2[4],Vmo[LanguageIndex],OSDMain1);}
}
//-------------------------------------------
void OsdItem(BYTE x,BYTE ENDx,BYTE y,BYTE z,BYTE *DisData,BYTE *DisDataA,BYTE *DisDataB)
{
GoI2CMaster(0x7A);
for(x;x<ENDx;x++)
{
SendI2CByte(0x80+y);
SendI2CByte(x); //Character
SendI2CByte(*DisData);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -