📄 page.c
字号:
#include "Globe.h"
bit MenuSelect; //menu模式标志 0:normal 1:factory
BYTE data horizon;
BYTE ModePressCount;
extern bit TVSearchBit,TVNextBit;
BYTE idata Color;
BYTE idata Contrast;
BYTE idata Tint;
BYTE idata ComAmp;
BYTE code Mode[11][14]=
{
{SecondPage,_liang,__,__,SecondPage,_du,__,__,__,__,__,DataEnd},
{SecondPage,_dui,__,__,SecondPage,_bi,__,__,SecondPage,_du,__,DataEnd},
{SecondPage,_se,__,__,SecondPage,_du,__,__,__,__,__,__,DataEnd},
{SecondPage,_se,__,__,SecondPage,_diao,__,__,__,__,__,__,DataEnd},
{_P,_i,_c,_t,_u,_r,_e,__,__,__,__,__,__,DataEnd},
{SecondPage,_tiao,__,__,SecondPage,_zheng,__,__,__,__,__,DataEnd},
{SecondPage,_she,__,__,SecondPage,_ding,__,__,__,__,__,DataEnd},
{_L,_f,_t,_e,_LEFT,__,_R,_i,_g,_h,_t,_RIGHT,__,DataEnd},
{_U,_p,_UP,__,_D,_o,_w,_n,_DOWN,__,__,__,__,DataEnd},
{_T,_u,_n,_e,_r,__,__,__,__,__,__,__,__,DataEnd},
{_S,_e,_l,_c,_e,_t,__,__,__,__,__,__,__,DataEnd},
};
//--------------[ USER CONYROL]---------------//
/**********************************************************
Description : convert percent data to value.
Parameters : Item
Max/percentdata/Min--max/current/min
Return Value :
**********************************************************/
BYTE Hex_to_Percent(BYTE MIN,BYTE Curdata,BYTE MAX)
{
double temp;
WORD zs1,zs2;
BYTE value;
temp=((double)Curdata-(double)MIN)/((double)MAX-(double)MIN);
temp*=100;
//temp+=MIN+54;
zs1=temp;
zs1*=2;
zs2=temp*2;
if(zs2>zs1)temp++;
value=(BYTE)temp;
return value;
}
/**********************************************************
Description : convert percent data to value.
Parameters : Item
Max/percentdata/Min--max/current/min
Return Value :
**********************************************************/
BYTE Percent_to_Hex(BYTE MIN,BYTE Curdata,BYTE MAX)
{ //Hec data to percentdata !!!
BYTE value;
WORD zhenshu1,zhenshu2;
double temp;
temp = (double)Curdata/ 100.00;
temp = temp *((double)MAX - (double)MIN);
temp+=MIN;
zhenshu1=temp;
zhenshu1*=2;
zhenshu2=temp*2;
if(zhenshu1<zhenshu2)temp++;
value =LoByte(temp);
return value;
}
// MENU SELECT
void ModeSelect(void)
{
BYTE temp;
ModePressCount++;
if(ModePressCount > eRECALL)
{
ModePressCount=0;
CloseOSD();
OSDOPEN=0;
}
if(ModePressCount != 0) {
switch(ModePressCount) {
case eBRIGHT:
temp= EEPROM_Rd_Byte(EAD_BRI);
WorkValue=temp;
CloseOSD();
OpenOSD_Border();
OSDOPEN = 1;
gotoxy(VETICAL,horizon);
Double_W_H(RINT);
PrintChar(_Brightness_L, red, 0);
PrintChar(_Brightness_R, red, 0);
PrintString(Mode[0], yellow);
WorkValue=Hex_to_Percent(ComAmpN, WorkValue, ComAmpX);
gotoxy(VETICAL+VETICAL_LEN,horizon);
Double_W_H(RINT);
PrintDec(WorkValue,yellow);
gotoxy(VETICAL,horizon+1);
PrintOneBar(VETICAL,horizon+1, green);
break;
case eCONTRAST:
WorkValue = EEPROM_Rd_Byte(EAD_CON);
if(WorkValue < ContrastN&&WorkValue >ContrastX)
{
WorkValue = ContrastN;
}
gotoxy(VETICAL,horizon);
Double_W_H(RINT);
PrintChar(_Contrast_L, red, 0);
PrintChar(_Contrast_R, red, 0);
PrintString(Mode[1], yellow);
temp=Hex_to_Percent(ContrastN, WorkValue, ContrastX);
WorkValue=temp;
gotoxy(VETICAL+VETICAL_LEN,horizon);
Double_W_H(RINT);
PrintDec(WorkValue,yellow);
gotoxy(VETICAL,horizon+1);
PrintOneBar(VETICAL,horizon+1, green);
break;
case eCOLOR:
WorkValue = EEPROM_Rd_Byte(EAD_COL);
if(WorkValue < ColorN&&WorkValue >ColorX)
{
WorkValue = ColorN;
}
gotoxy(VETICAL, horizon);
Double_W_H(RINT);
PrintChar(_Color_L, red, 0);
PrintChar(_Color_R, red, 0);
PrintString(Mode[2], yellow);
temp=Hex_to_Percent(ColorN, WorkValue, ColorX);
WorkValue=temp;
gotoxy(VETICAL+VETICAL_LEN,horizon);
Double_W_H(RINT);
PrintDec(WorkValue,yellow);
gotoxy(VETICAL,horizon+1);
PrintOneBar(VETICAL,horizon+1, green);
break;
case eTINT:
WorkValue = EEPROM_Rd_Byte(EAD_TINT);
if(WorkValue < TintN&&WorkValue >TintX)
{
WorkValue = TintN;
}
gotoxy(VETICAL,horizon);
Double_W_H(RINT);
PrintChar(_Tint_L, red, 0);
PrintChar(_Tint_R, red, 0);
PrintString(Mode[3], yellow);
temp=Hex_to_Percent(TintN, WorkValue, TintX);
WorkValue=temp;
gotoxy(VETICAL+VETICAL_LEN,horizon);
Double_W_H(RINT);
PrintDec(WorkValue,yellow);
gotoxy(VETICAL,horizon+1);
PrintOneBar(VETICAL,horizon+1, green);
break;
case eROTATE:
gotoxy(VETICAL,horizon);
Double_W_H(RINT);
PrintString(Mode[5], yellow);
gotoxy(VETICAL+VETICAL_LEN,horizon);
Double_W_H(RINT);
PrintChar(__,yellow,0);//去除错误显示的数值
PrintChar(__,yellow,0);
PrintChar(__,yellow,0);
PrintChar(__,yellow,0);
gotoxy(VETICAL,horizon+1);
Double_W_H(RINT);
for(temp=0;temp<30;temp++)//去除错误显示的状态条
{
PrintChar(__,yellow,0);
}
break;
case eRECALL:
gotoxy(VETICAL,horizon);
Double_W_H(RINT);
PrintString(Mode[6], yellow);
break;
default:
break;
}
}
}
// VALUE ADJUST
void ValueAdjust(void)
{
if(!OSDOPEN) {
OpenOSD_Border();
OSDOPEN=1;
if(ModePressCount > 0)ModePressCount=ModePressCount-1;
ModeSelect();
KeyShort=0;
}
if(KeyShort==1) { //单击控制
if(ModePressCount==eROTATE){
LR=~LR;
UD=~UD;
}
else if(ModePressCount==eRECALL){
byM230_DA0=Reset_BRI;
EEPROM_Wr_Byte(EAD_BRI, Reset_BRI);
byM230_DA1=Reset_CON;
EEPROM_Wr_Byte(EAD_CON,Reset_CON);
byM230_DA2=Reset_COL;
EEPROM_Wr_Byte(EAD_COL,Reset_COL);
byM230_DA3=Reset_TINT;
EEPROM_Wr_Byte(EAD_TINT, Reset_TINT);
CloseOSD();
OSDOPEN=0;
}
else if(ModePressCount !=0) {
if(KeyCode==UP_KEY) {
if(WorkValue<100) WorkValue++;
DelayX10ms(255);
}
else if(KeyCode==DOWN_KEY){
if(WorkValue>0) WorkValue--;
DelayX10ms(255);
}
gotoxy(VETICAL+VETICAL_LEN, horizon);
Double_W_H(RINT);
PrintDec(WorkValue,yellow);
gotoxy(VETICAL,horizon+1);
PrintOneBar(VETICAL,horizon+1, green);
switch(ModePressCount) {
case eBRIGHT:
ComAmp= Percent_to_Hex(ComAmpN,WorkValue, ComAmpX);
EEPROM_Wr_Byte(EAD_BRI, ComAmp);
byM230_DA0=ComAmp;
break;
case eCONTRAST:
Contrast= Percent_to_Hex(ContrastN,WorkValue, ContrastX);
EEPROM_Wr_Byte(EAD_CON, Contrast);
byM230_DA1=Contrast;
break;
case eCOLOR:
Color = Percent_to_Hex(ColorN,WorkValue, ColorX);
EEPROM_Wr_Byte(EAD_COL, Color);
byM230_DA2=Color;
break;
case eTINT:
Tint = Percent_to_Hex(TintN, WorkValue, TintX);
EEPROM_Wr_Byte(EAD_TINT, Tint);
byM230_DA3=Tint;
break;
default:
break;
}
}
}
else if(KeyLianji==1) {
if(ModePressCount<=eTINT&&ModePressCount>0) {
if(KeyCode==UP_KEY) {
if(WorkValue<100) WorkValue++;
DelayX10ms(255);
//DelayX10ms(255);
}
else if(KeyCode==DOWN_KEY) {
if(WorkValue>0) WorkValue--;
DelayX10ms(255);
//DelayX10ms(255);
}
gotoxy(VETICAL+VETICAL_LEN, horizon);
Double_W_H(RINT);
PrintDec(WorkValue,yellow);
gotoxy(VETICAL,horizon+1);
PrintOneBar(VETICAL,horizon+1, green);
switch(ModePressCount) {
case eBRIGHT:
ComAmp= Percent_to_Hex(ComAmpN,WorkValue, ComAmpX);
EEPROM_Wr_Byte(EAD_BRI, ComAmp);
byM230_DA0=ComAmp;
break;
case eCONTRAST:
Contrast= Percent_to_Hex(ContrastN,WorkValue, ContrastX);
EEPROM_Wr_Byte(EAD_CON, Contrast);
byM230_DA1=Contrast;
break;
case eCOLOR:
Color =Percent_to_Hex(ColorN,WorkValue, ColorX);
EEPROM_Wr_Byte(EAD_COL, Color);
byM230_DA2=Color;
break;
case eTINT:
Tint = Percent_to_Hex(TintN, WorkValue, TintX);
EEPROM_Wr_Byte(EAD_TINT, Tint);
byM230_DA3=Tint;
break;
default:
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -