📄 tvtuner.c
字号:
Player_Power_On_Off();
if(_IR_key==IR_TV_SEARCH||_IR_key==IR_TV_POWER||_VFD_Key==IR_TV_POWER) {
cur_ch_num=first_valid_ch;
Proc_Key_Tv_Search_Return();
return;
}
}
timer1_counter=0;
f_timer_2s=0;
while(f_timer_2s==0);
cur_ch_num=first_valid_ch;
Send_CR_Set(0);
Clear_All_Osd();
Sub_Set_Channel();
DelayMs(100);DelayMs(100);
PIN_MUTE1=0;//MUTE OFFF
PIN_MUTE2=0;//MUTE OFF
return;
}
//***************************************************************************************
void Sub_Display_Searching_bar(unsigned char band_flag,unsigned char searching_num)
{
unsigned char temp_num=0;
unsigned char temp0;
if(band_flag==1)
{
if(searching_num%4==0)
M35055_Display_a_char(SEARCHING_BAR_START_POS+searching_num/4,OSD_HYPHEN2);
else if(searching_num%4==2)
M35055_Display_a_char(SEARCHING_BAR_START_POS+searching_num/4,OSD_HYPHEN3);
//***********************************************************
temp0=hex2bcd[2+searching_num];
M35055_Display_a_char(SEARCHING_NUM_POS-2,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(SEARCHING_NUM_POS-1,num_digit[temp0&0x0f]);
}
else if(band_flag==2)
{
if((searching_num+VHF_L_BAND_LENGTH)%4==0)
M35055_Display_a_char(SEARCHING_BAR_START_POS+(searching_num+VHF_L_BAND_LENGTH)/4,OSD_HYPHEN2);
else if((searching_num+VHF_L_BAND_LENGTH)%4==2)
M35055_Display_a_char(SEARCHING_BAR_START_POS+(searching_num+VHF_L_BAND_LENGTH)/4,OSD_HYPHEN3);
//***********************************************************
temp0=hex2bcd[2+searching_num+VHF_L_BAND_LENGTH];
M35055_Display_a_char(SEARCHING_NUM_POS-2,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(SEARCHING_NUM_POS-1,num_digit[temp0&0x0f]);
}
else if(band_flag==3)
{
if((searching_num+VHF_L_BAND_LENGTH+VHF_H_BAND_LENGTH)%4==0)
M35055_Display_a_char(SEARCHING_BAR_START_POS+(searching_num+VHF_L_BAND_LENGTH+VHF_H_BAND_LENGTH)/4,OSD_HYPHEN2);
else if((searching_num+VHF_L_BAND_LENGTH+VHF_H_BAND_LENGTH)%4==2)
M35055_Display_a_char(SEARCHING_BAR_START_POS+(searching_num+VHF_L_BAND_LENGTH+VHF_H_BAND_LENGTH)/4,OSD_HYPHEN3);
//***********************************************************
temp0=hex2bcd[2+searching_num+VHF_L_BAND_LENGTH+VHF_H_BAND_LENGTH];
if((2+searching_num+VHF_L_BAND_LENGTH+VHF_H_BAND_LENGTH)<70)
{
M35055_Display_a_char(SEARCHING_NUM_POS-2,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(SEARCHING_NUM_POS-1,num_digit[temp0&0x0f]);
}
}
}
//***************************************************************************************
void Sub_Display_Searching_num(unsigned char band_flag)
{
unsigned char temp0=0;
if(band_flag==0)
temp0=0;
if(band_flag==1)
temp0=hex2bcd[vhfl_ch_num];
if(band_flag==2)
temp0=hex2bcd[vhfh_ch_num];
if(band_flag==3)
temp0=hex2bcd[uhf_ch_num];
M35055_Display_a_char(SEARCHING_NUM_POS-2,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(SEARCHING_NUM_POS-1,num_digit[temp0&0x0f]);
temp0=hex2bcd[total_ch_num];
M35055_Display_a_char(SEARCHING_NUM_POS,0x1f); // '/'
M35055_Display_a_char(SEARCHING_NUM_POS+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(SEARCHING_NUM_POS+2,num_digit[temp0&0x0f]);
}
//***************************************************************************************
void Sub_Set_Channel()
{
unsigned char temp0;
unsigned char input_ch_freq;
Write24c02(&cur_ch_num,CURRENT_CHANNEL_NUM_ADDR,1);
Read24c02(&input_ch_freq,cur_ch_num+FIRST_CHANNEL_FREQ,1);
PIN_MUTE1=1;//MUTE ON
if(cur_ch_num<VHF_L_BAND_LENGTH)
{
Write_Tv_tune(Wireless_Tv_channel_tbl[input_ch_freq],0);
}
else if(cur_ch_num>=VHF_L_BAND_LENGTH&&cur_ch_num<(VHF_H_BAND_LENGTH+VHF_L_BAND_LENGTH))
Write_Tv_tune(Wireless_Tv_channel_tbl[input_ch_freq],1);
else
Write_Tv_tune(Wireless_Tv_channel_tbl[input_ch_freq],2);
//*********************************************************
temp0=hex2bcd[cur_ch_num+1];
M35055_Display_a_char(CHANNEL_NUM1_POS,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_NUM0_POS,num_digit[temp0&0x0f]);
//*********************************************************
DelayMs(100);DelayMs(100); // DELAY FOR MUTE
PIN_MUTE1=0;//MUTE OFF
f_osd_ch_displaying=1;
f_timer_2s_ch=0;
timer1_counter_ch=0;
}
void Proc_Key_Next_Ch()
{
unsigned char i,valid_channel;
for(i=cur_ch_num+1;i<TOTAL_BAND_LENGTH;i++)
{
Read24c02(&valid_channel,FIRST_CHANNEL_FREQ+i,1);
if(valid_channel!=0){break;}
}
if(valid_channel==0)
{
for(i=0;i<cur_ch_num;i++)
{
Read24c02(&valid_channel,FIRST_CHANNEL_FREQ+i,1);
if(valid_channel!=0){break;}
}
}
if(valid_channel!=0) cur_ch_num=valid_channel;
Send_CR_Set(0);
Sub_Set_Channel();
}
//***************************************************************************************
void Proc_Key_Prev_Ch()
{
char i,valid_channel;
for(i=cur_ch_num-1;i>-1;i--)
{
Read24c02(&valid_channel,FIRST_CHANNEL_FREQ+i,1);
if(valid_channel!=0){break;}
}
if(valid_channel==0)
{
for(i=TOTAL_BAND_LENGTH-1;i>cur_ch_num;i--)
{
Read24c02(&valid_channel,FIRST_CHANNEL_FREQ+i,1);
if(valid_channel!=0){break;}
}
}
if(valid_channel!=0) cur_ch_num=valid_channel;
Send_CR_Set(0);
Sub_Set_Channel();
}
//***************************************************************************************
unsigned char Proc_Digit_Input_Tv_Channel()
{
unsigned char set_channel_num=0;
unsigned char i;
unsigned char valid_channel;
set_channel_num=Channel_Num.num0+Channel_Num.num1*10; //+Channel_Num.num2*100;
if(Channel_Num.num0>9||Channel_Num.num1>9)//||Channel_Num.num2>9)
return 0;
else if(set_channel_num<2)
return 1;
for(i=0;i<TOTAL_BAND_LENGTH;i++)
{
Read24c02(&valid_channel,FIRST_CHANNEL_FREQ+i,1);
if(valid_channel==set_channel_num-1)break;
}
if(valid_channel!=set_channel_num-1)
{Send_CR_Set(1);PIN_MUTE2=1;}
else
{Send_CR_Set(0);PIN_MUTE2=0;}
cur_ch_num=set_channel_num-1;
Sub_Set_Channel();
return 1;
}
//***************************************************************************************
void Proc_Key_Tv_Menu()
{
unsigned char temp0;
if(Display_Mode!=DISPLAY_MODE1_MENU)
{
Display_Mode=DISPLAY_MODE1_MENU;
Send_CR_Set(1);
Clear_All_Osd();
//DISPLAY TOTAL NUM
Read24c02(&temp0,TOTAL_CHANNEL_NUM_ADDR,1);
M35055_Display_line(1,DISP_OSD_MENU_HEAD);
M35055_Display_line(2,DISP_OSD_TOTAL_BAND);
if(temp0>99)
{
M35055_Display_a_char(CHANNEL_MENU_NUM_POS1,num_digit[1]);
temp0-=100;
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS1+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS1+2,num_digit[temp0&0x0f]);
}
else
{
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS1,num_digit[0]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS1+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS1+2,num_digit[temp0&0x0f]);
}
//DISPLAY CURR NUM
temp0=0;
Read24c02(&temp0,CURRENT_CHANNEL_NUM_ADDR,1);
M35055_Display_line(3,DISP_OSD_CURR_BAND);
if(temp0>99)
{
M35055_Display_a_char(CHANNEL_MENU_NUM_POS2,num_digit[1]);
temp0-=100;
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS2+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS2+2,num_digit[temp0&0x0f]);
}
else
{
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS2,num_digit[0]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS2+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS2+2,num_digit[temp0&0x0f]);
}
//DISPLAY VHF L NUM
temp0=0;
Read24c02(&temp0,VHFL_CHANNEL_NUM_ADDR,1);
M35055_Display_line(4,DISP_OSD_VHF_L);
if(temp0>99)
{
M35055_Display_a_char(CHANNEL_MENU_NUM_POS3,num_digit[1]);
temp0-=100;
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS3+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS3+2,num_digit[temp0&0x0f]);
}
else
{
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS3,num_digit[0]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS3+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS3+2,num_digit[temp0&0x0f]);
}
//DISPLAY VHF H NUM
temp0=0;
Read24c02(&temp0,VHFH_CHANNEL_NUM_ADDR,1);
M35055_Display_line(5,DISP_OSD_VHF_H);
if(temp0>99)
{
M35055_Display_a_char(CHANNEL_MENU_NUM_POS4,num_digit[1]);
temp0-=100;
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS4+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS4+2,num_digit[temp0&0x0f]);
}
else
{
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS4,num_digit[0]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS4+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS4+2,num_digit[temp0&0x0f]);
}
//DISPLAY UHF NUM
temp0=0;
Read24c02(&temp0,UHF_CHANNEL_NUM_ADDR,1);
M35055_Display_line(6,DISP_OSD_UHF);
if(temp0>99)
{
M35055_Display_a_char(CHANNEL_MENU_NUM_POS5,num_digit[1]);
temp0-=100;
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS5+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS5+2,num_digit[temp0&0x0f]);
}
else
{
temp0=hex2bcd[temp0];
M35055_Display_a_char(CHANNEL_MENU_NUM_POS5,num_digit[0]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS5+1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_MENU_NUM_POS5+2,num_digit[temp0&0x0f]);
}
}
else if(Display_Mode==DISPLAY_MODE1_MENU)
{
Display_Mode=DISPLAY_MODE0_OFF;
Send_CR_Set(0);
Clear_All_Osd();
}
}
//***************************************************************************************
void Proc_Key_Display()
{
unsigned char temp0;
if(Display_Mode==DISPLAY_MODE0_OFF)
{
Display_Mode=DISPLAY_MODE2_BAND;
temp0=hex2bcd[cur_ch_num];
M35055_Display_a_char(CHANNEL_NUM1_POS-1,num_digit[(temp0>>4)&0x0f]);
M35055_Display_a_char(CHANNEL_NUM1_POS,num_digit[temp0&0x0f]);
}
else
{
Display_Mode=DISPLAY_MODE0_OFF;
Send_CR_Set(0);
Clear_All_Osd();
}
}
//***************************************************************************************
void Video_Output_Input_SW()
{
bit f_inputvideo_exist=0;
POWER_RESUME_KEY_PIN=0;
PIN_MUTE1=1;//MUTE ON
PIN_MUTE2=1;//MUTE ON
// U1369_RESET_PIN=1;
AVSW2=PIN_LOW;
AVSW1=PIN_HIGH;
//***************************************************
timer1_counter=0;
f_timer_2s=0;
while(f_timer_2s==0){; if(timer1_counter>60&&TV_VIDEO_EXIST==1)f_inputvideo_exist=1;}
if(f_inputvideo_exist==1)
{
Send_CR_Set(0);
f_last_videoinput=1;
}
else
{
Send_CR_Set(1);
f_last_videoinput=0;
}
//***************************************************
DelayMs(100);DelayMs(100);
PIN_MUTE1=0;//MUTE OFF
PIN_MUTE2=0;//MUTE OFF
}
//********************************************************
void Video_Output_DVD_SW()
{
POWER_RESUME_KEY_PIN=1;
PIN_MUTE1=0;//MUTE ON
PIN_MUTE2=1;//MUTE ON
U1369_Reset();
AVSW1=PIN_LOW;
DelayMs(100);DelayMs(100);
PIN_MUTE1=1;//MUTE OFF
PIN_MUTE2=0;//MUTE OFF
}
//********************************************************
void Video_Output_TV_SW()
{
bit f_inputvideo_exist=0;
POWER_RESUME_KEY_PIN=0;
PIN_MUTE1=1;//MUTE ON
PIN_MUTE2=1;//MUTE ON
AVSW2=PIN_HIGH;
//***************************************************
timer1_counter=0;
f_timer_2s=0;
while(f_timer_2s==0){ if(timer1_counter>60&&TV_VIDEO_EXIST==1)f_inputvideo_exist=1;}
if(f_inputvideo_exist==1)
{
Send_CR_Set(0);
f_last_videoinput=1;
PIN_MUTE2=0;//MUTE OFF
}
else
{
Send_CR_Set(1);
f_last_videoinput=0;
}
AVSW1=PIN_HIGH;
//***************************************************
DelayMs(100);DelayMs(100);
PIN_MUTE1=0;//MUTE OFF
}
//********************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -