📄 tft_7._h
字号:
break;
case BACK:
OSD_out_1row(0,2,3,1,c_backsight);
break;
}
FOSD=DIS_VIDEO;
}
/*========================
显示音量
========================*/
void dis_volume(void)
{
OSD_window(2);
OSD_attrib_1row(0,0,16,1,0);
OSD_out_1row(0,0,3,1,c_volume);
OSD_out_num(0,10,user_config[volume],1);
FOSD=DIS_VOLUME;
}
/*================================
================================*/
void delay(unsigned int x)
{
unsigned int i,j;
for(j=0;j<x;j++)
{
for(i=0;i<x;i++)
WDR();
}
}
/*================================
================================*/
unsigned ADC_read(unsigned char x)
{
ADCSR = 0x00; //disable adc
ADMUX = 0x60|x; //select adc input x
ACSR = 0x80;
ADCSR = 0xC1;
while(!(ADCSR&0x10))
;
ADCL=ADCH;
ADCSR|=0x40;
while(!(ADCSR&0x10))
;
return ADCH;
}
/*================================
================================*/
unsigned char key(unsigned char x)
{
unsigned char static old_key=0xff,j;
// unsigned char static k=0;
if((ADC_read(x)&0xe0)!=0xe0 && fkey==0)
{
for(j=0;j<50;j++)
{
if((ADC_read(x)&0xe0)==0xe0)
return 0xff;
}
if(x==6)
old_key=ADC_read(x)&0xe0;
else
old_key=((ADC_read(x)&0xe0)>>4)|1;
fkey=1;
switch(old_key)
{
case 0x80:
return KMENU;
case 0x40:
return KDOWN;
case 0x00:
return KUP;
case 0x01:
return KLEFT;
case 0x05:
return KRIGHT;
case 0x09:
return KAV;
case 0x0d:
return KBACK;
case 0xc0:
return KRESERVE;
}
}
else if(ADC_read(6)>0xf0 && ADC_read(7)>0xf0)
fkey=0;
if(fcontinuous==1)
{
fcontinuous=0;
switch(old_key)
{
case 0x40:
return KDOWN;
case 0x00:
return KUP;
case 0x01:
return KLEFT;
case 0x05:
return KRIGHT;
}
}
return 0xff;
}
/*==========================================
==========================================*/
void EEPROMwrite(unsigned char a,unsigned char d)
{
unsigned char j=0;
unsigned char rw_add;
switch(a/256){
case 0: rw_add=0xa0; break;
case 1: rw_add=0xa2; break;
case 2: rw_add=0xa4; break;
case 3: rw_add=0xa6; break;
default: break;
}
while(IICwrite(rw_add,a%256,d)==0)
{
WDR();
if((++j)==10)
return;
}
delay(100);
}
/*==========================================
==========================================*/
unsigned char EEPROMread(unsigned char a)
{
unsigned char rw_add;
switch(a/256){
case 0: rw_add=0xa0; break;
case 1: rw_add=0xa2; break;
case 2: rw_add=0xa4; break;
case 3: rw_add=0xa6; break;
default: break;
}
return IICread(rw_add,a%256);
}
/*================================
================================*/
unsigned int CHwrite(unsigned char x)
{
unsigned int tmp;
unsigned char db1,db2;
// volume_register=0;
db1=EEPROMread(x*2+48);
db2=EEPROMread(x*2+49);
tmp=db1*256+db2;
EEPROMwrite(channel,x); //保存频道
FI1256write(tmp);
return tmp;
}
/*================================
================================*/
void auto_tune(void)
{
unsigned int tmp,ch_f,j,address=1;
unsigned char ftune=1;
volume_register=0;
gauge_num(tmp=Frequency_low); //加载最低频率
WDR();
OSD_out_1row(1,12,1,0,c_on_off[ON]);
OSD_out_num(3,11,1,0);
do
{
do
{
if(key(7)==KLEFT || tmp>Frequency_high)
ftune=0; //扫描停止命令
j=0;
if(((tmp+=2)%8)==0);
gauge_num(tmp);
WDR();
}while((0x0f&FI1256write(tmp))!=0 && ftune==1);
ch_f=tmp;
do
{
if(key(7)==KLEFT || tmp>Frequency_high)
ftune=0; //扫描停止命令
j++;
if(((++tmp)%8)==0);
gauge_num(tmp);
WDR();
}while((0x0f&FI1256write(tmp))==0 && ftune==1);
if(j>5)
{
j=0;
channel_frequency[address++]=ch_f;
OSD_out_num(3,11,address,0);
}
}while(ftune);
OSD_out_1row(1,12,1,0,c_on_off[OFF]);
FI1256write(channel_frequency[user_config[channel]=1]);
tmp=50;
EEPROMwrite(ch_max,user_config[ch_max]=address);
for(j=1;j<=address;j++)
{
EEPROMwrite(tmp++,channel_frequency[j]/256);
EEPROMwrite(tmp++,channel_frequency[j]%256);
}
OSD_time=OSD_TIME;
}
/*========================
加载默认值
========================*/
void aload_default(void)
{
unsigned char *p;
unsigned char j;
p=&user_adjust[1][0];
for(j=0;j<5;j++)
{
EEPROMwrite(j,user_config[j]);
}
for(j=0;j<18;j++)
{
EEPROMwrite(j+10,*(p+j));
}
}
/*========================
读取配置
========================*/
void aload_config(void)
{
unsigned char *p;
unsigned char j;
p=&user_adjust[1][0];
for(j=1;j<5;j++)
{
user_config[j]=EEPROMread(j);
}
for(j=0;j<18;j++)
{
*(p+j)=EEPROMread(j+10);
}
}
/*========================
上电初始化
========================*/
void power_on(void)
{
write_user_char();
if(key(6)==KMENU)
aload_default();
aload_config();
CHwrite(user_config[channel]);
video_choose(user_config[video_input]);
dis_video(user_config[video_input]);
screen_mode(user_adjust[user_config[video_input]][5]);
pal_ntsc(NTSC);
screen_inversion(user_config[inversion]=ON);
screen_mirror(user_adjust[user_config[video_input]][4]);
}
/*========================
菜单
========================*/
void dis_menu(unsigned char x)
{
unsigned char j;
if(x<7)
{
if(FOSD!=DIS_MENU1)
{
FOSD=DIS_MENU1;
OSD_window(1);
for(j=0;j<3;j++) //标题文字
{
OSD_out_1row(0,j*5+1,3,0,c_menu[j]);
}
//标题颜色
OSD_attrib_1row(0,0,15,7,3);
OSD_attrib_1row(0,(user_config[video_input]-1)*5,5,7,2);
for(j=1;j<7;j++)
{
OSD_out_1row(j,2,3,0,c_menu[j+3]);
}
for(j=0;j<4;j++)
{
OSD_out_num(j+1,10,user_adjust[user_config[video_input]][j],0);
}
OSD_out_1row(5,11,1,0,c_on_off[user_adjust[user_config[video_input]][4]]);
OSD_out_1row(6,11,1,0,mode_1_2_3[user_adjust[user_config[video_input]][5]]);
}
for(j=1;j<7;j++)
{
if(j!=x)
OSD_attrib_1row(j,0,15,7,2);
else //选中
{
OSD_attrib_1row(j,0,15,5,4);
}
}
if(x<5)
OSD_out_num(x,10,user_adjust[user_config[video_input]][x-1],0);
else if(x==5)
OSD_out_1row(5,11,1,0,c_on_off[user_adjust[user_config[video_input]][4]]);
else if(x==6)
OSD_out_1row(6,11,1,0,mode_1_2_3[user_adjust[user_config[video_input]][5]]);
}
else //第二页
{
if(FOSD!=DIS_MENU2)
{
FOSD=DIS_MENU2;
OSD_window(1);
for(j=0;j<3;j++) //标题文字
{
OSD_out_1row(0,j*5+1,3,0,c_menu[j]);
}
//标题颜色
OSD_attrib_1row(0,0,5,7,2);
OSD_attrib_1row(0,5,10,7,3);
for(j=0;j<3;j++)
{
OSD_out_1row(j+1,2,4,0,c_menu2[j]);
}
OSD_out_1row(1,12,1,0,c_on_off[OFF]);
OSD_out_num(3,11,user_config[channel],0);
}
for(j=1;j<6;j++)
{
if(j!=x-6)
OSD_attrib_1row(j,0,15,7,2);
else
{
OSD_attrib_1row(j,0,15,5,4);
}
}
gauge_num(CHwrite(user_config[channel]));
}
}
/*================================
================================*/
void exe_video_choose(unsigned char x)
{
dis_video(x);
video_choose(x);
screen_mode(user_adjust[x][5]);
screen_mirror(user_adjust[x][4]);
}
/*================================
END
================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -