📄 osd.c
字号:
DisData++;
SendI2CByte(0x80+z);
SendI2CByte(x); //Character
SendI2CByte(*DisDataA);
DisDataA++;
SendI2CByte(0xa0+z);
SendI2CByte(x);
SendI2CByte(*DisDataB);
DisDataB++;
}
SendI2CStop();
}
void Show_String(BYTE x,BYTE ENDx,BYTE y,BYTE *DisData)
{
GoI2CMaster(0x7A);
for(x;x<ENDx;x++){
SendI2CByte(0x80+y);
SendI2CByte(x);
SendI2CByte(*DisData);
DisData++;
SendI2CByte(0xa0+y);
SendI2CByte(x); //BackGround
SendI2CByte(0x71);
}
SendI2CStop();
}
//----------------------------------------
void MoveCursor(char delta)
{
// a=ab[cursor-1][0];
// a=a+0x10;
// b=ab[cursor-1][1];
// b=b+0x10;
if(!AdjustFlag)
{
cursor += delta;
if(cursor>18) cursor=1;
if(cursor<1) cursor=18;
UpdateOsd();
}
else
{
minper+=delta;
// else{minper=a;}
if(minper>max) {minper=max;return;}
if(minper<min) {minper=min;return;}
// if(minper>b) {minper=b;return;}
// if(minper<a) {minper=a;return;}
// minper=minper-0x10;
ShowParScroll(6,22,Scroll,ScrollColor);
ShowParPercent(12,17,Percent,OSDMain1);
if (cursor==1) Write_TDA4886_Reg(0x01,min+minper);
if (cursor==2) Write_TDA4886_Reg(0x02,min+minper);
if (cursor==3) Write_TDA48XX_Reg(0x00,min+minper);
if (cursor==4) Write_TDA48XX_Reg(0x06,min+minper);
if (cursor==5) Write_TDA48XX_Reg(0x08,min+(minper&0xfe));
if (cursor==6) Write_TDA48XX_Reg(0x02,min+(minper&0xfe));
if (cursor==7) Write_TDA48XX_Reg(0x04,min+minper);
if (cursor==8) Write_TDA48XX_Reg(0x0c,min+(minper&0xf0));
if (cursor==9) Write_TDA48XX_Reg(0x0c,min+minper);
if (cursor==10) {
Write_TDA48XX_Reg(0x00,min+minper);
Write_TDA48XX_Reg(0x08,min+(minper&0xfe));
}
if (cursor==11) XFR_DA1=PWM_ROTATION+minper;
if (cursor==18) CloseOsd();
}
}
void MoveCursor1(char delta)
{
a=0x00;
b=0x3f;
if(!AdjustFlag)
{
cursor += delta;
if(cursor>4) cursor=4;
if(cursor<1) cursor=1;
UpdateOsd1();
}
else
{
minper+=delta;
if(minper>b) minper=b;
if(minper<a) minper=a;
ShowParScroll(6,22,Scroll,ScrollColor);
ShowParPercent(12,17,Percent,OSDMain1);
if(cursor==2) Write_TDA4886_Reg(0x05,RGAIN+minper);
if(cursor==3) Write_TDA4886_Reg(0x06,GGAIN+minper);
if(cursor==4) Write_TDA4886_Reg(0x07,BGAIN+minper);
if(cursor==1) {if (Adckey_buf==Menu) {OSDIndex=0;ShowMainMenu();}}
}
}
void MoveCursor2(char delta)
{
//unsigned char x,y,lhk,make;
// x=ab1[cursor-2][0];
// y=ab1[cursor-2][1];
if(!AdjustFlag)
{
cursor += delta;
if(cursor>5) cursor=5;
if(cursor<1) cursor=1;
UpdateOsd2();
}
else
{
minper+=delta;
if(minper>max) minper=max;
if(minper<min) minper=min;
ShowParScroll(6,22,Scroll,ScrollColor);
ShowParPercent(12,17,Percent,OSDMain1);
if(cursor==2) Write_TDA48XX_Reg(0x07,minper);
if(cursor==3) Write_TDA48XX_Reg(0x09,minper);
if(cursor==4) Write_TDA48XX_Reg(0x05,minper);
if(cursor==5) Write_TDA48XX_Reg(0x03,VMOIRE+minper);
if(cursor==1) {if (Adckey_buf==Menu) { OSDIndex=0;ShowMainMenu();}}
}
}
//--------------------------------------------------------
void OpenOsd(void)
{
GoI2CMaster(0x7A); //================================//
SendI2CByte(0x8F); // row 15 of osd ic //
SendI2CByte(0x11); // column 17 //
SendI2CByte(0x80); // OSDEN,BSEN,SHADOW,FAN //
SendI2CStop();
}
//--------------------------------------------------------
void CloseOsd(void)
{
GoI2CMaster(0x7A); //================================//
SendI2CByte(0x8F); // row 15 of osd ic //
SendI2CByte(0x11); // column 17 //
SendI2CByte(0x00); // OSDEN,BSEN,SHADOW,FAN //
SendI2CStop();
cursor=0;
AdjustFlag=0;
//entermenu=0;
}
//-------------------------------------------------------------
void ShowParScroll(BYTE StartX,EndX,BYTE *DisData,BYTE*DisDataA)
{
// BYTE data x,y;
BYTE mm,j;
// j=minper*100/b;
// x=j/10;
// y=j%10;
RegPercent();
//unsigned char data;
//先填入空白的滚动条
Scroll[0]=0x00;
Scroll[1]=0x00;
Scroll[2]=0x7d; // "["
for (j=2;j<a+2;j++) Scroll[j+1]=0x7e;
if (j=a+3) {
if (b<2) Scroll[j]=0x82;
if (b>1&&b<4) Scroll[j]=0x81;
if (b>3&&b<6) Scroll[j]=0x80;
if (b>5&&b<8) Scroll[j]=0x7f;
if (b==8||b==9) Scroll[j]=0x7e;
}
for (j=a+4;j<13;j++) Scroll[j]=0x82;
Scroll[13]=0x83; // "]"
GoI2CMaster(0x7A);
for(mm=StartX;mm<EndX;mm++)
{
SendI2CByte(0x86);
SendI2CByte(mm); //Character
SendI2CByte(*DisData);
DisData++;
SendI2CByte(0xa6);
SendI2CByte(mm); //BackGround
SendI2CByte(*DisDataA);
DisDataA++;
}
SendI2CStop();
}
//-------------------------------------------------------------
void ShowParPercent(BYTE StartX,EndX,BYTE *DisData,BYTE *DisDataA)
{
//BYTE data x,y;
BYTE mm;//j;
// j=minper*100/b;
// x=j/10;
// y=j%10;
RegPercent();
Percent[4]=0x00;
Percent[3]=0x7a;
if(a==10&&b==0){
Percent[0]=0x01;
Percent[1]=0x0a;
}
else Percent[0]=0x00;
if(a==0) Percent[1]=0x00;
else { if(a==1) Percent[1]=0x01;
if(a==2) Percent[1]=0x02;
if(a==3) Percent[1]=0x03;
if(a==4) Percent[1]=0x04;
if(a==5) Percent[1]=0x05;
if(a==6) Percent[1]=0x06;
if(a==7) Percent[1]=0x07;
if(a==8) Percent[1]=0x08;
if(a==9) Percent[1]=0x09;
}
if(b==0) Percent[2]=0x0a;
else{
if(b==1) Percent[2]=0x01;
if(b==2) Percent[2]=0x02;
if(b==3) Percent[2]=0x03;
if(b==4) Percent[2]=0x04;
if(b==5) Percent[2]=0x05;
if(b==6) Percent[2]=0x06;
if(b==7) Percent[2]=0x07;
if(b==8) Percent[2]=0x08;
if(b==9) Percent[2]=0x09;
}
GoI2CMaster(0x7A);
for(mm=StartX;mm<EndX;mm++)
{
SendI2CByte(0x87);
SendI2CByte(mm); //Character
SendI2CByte(*DisData);
DisData++;
SendI2CByte(0xa7);
SendI2CByte(mm);
SendI2CByte(*DisDataA);
DisDataA++;
}
SendI2CStop();
}
void ShowVacancy(BYTE X,EndX,BYTE *DisData)
{
BYTE mm;
GoI2CMaster(0x7A);
for(mm=X;mm<EndX;mm++)
{
SendI2CByte(0x87);
SendI2CByte(mm); //Character
SendI2CByte(*DisData);
DisData++;
SendI2CByte(0xa7);
SendI2CByte(mm); //BackGround
SendI2CByte(0x71);
}
SendI2CStop();
}
void RegPercent(void)
{
int j;
// X=0x03;
// if(minper<min) minper=min;
// if(minper>max) minper=max;
if(OSDIndex==0){
switch (cursor){
case 1: min=0x00;
max=0x3f;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -