📄 lc72131.c
字号:
{
I2C_buffer[0] = HIBYTE(AMfreq);
I2C_buffer[1] = LOBYTE(AMfreq);
I2C_write_sub(EEPROM_ADDR, ((ChannelNum - 1) * 2 + AM_START_ADDR), I2C_buffer, 1);
I2C_write_sub(EEPROM_ADDR, ((ChannelNum - 1) * 2 + 1 + AM_START_ADDR), I2C_buffer + 1,
1);
//I2C_write_sub(EEPROM_ADDR, ((ChannelNum - 1) * 2 + AM_START_ADDR), I2C_buffer, 2);
}
else
{
I2C_buffer[0] = HIBYTE(FMfreq);
I2C_buffer[1] = LOBYTE(FMfreq);
I2C_write_sub(EEPROM_ADDR, ((ChannelNum - 1) * 2 + FM_START_ADDR), I2C_buffer, 1);
I2C_write_sub(EEPROM_ADDR, ((ChannelNum - 1) * 2 + 1 + FM_START_ADDR), I2C_buffer + 1,
1);
}
delay_ms(5);
}
void Eeprom_write_ch_band(void)
{
I2C_buffer[0] = ChannelNum;
I2C_write_sub(EEPROM_ADDR, CURRENT_CHANNEL, I2C_buffer, 1);
delay_ms(5);
}
MS_UOP Tuner_operation(MS_UOP uop)
{
switch(uop)
{
case MS_UOP_0:
case MS_UOP_1:
case MS_UOP_2:
case MS_UOP_3:
case MS_UOP_4:
case MS_UOP_5:
case MS_UOP_6:
case MS_UOP_7:
case MS_UOP_8:
case MS_UOP_9:
ChannelNum = uop -MS_UOP_0;
ChannelNum = ChannelNum + TenKeyCnt * 10;
TenKeyCnt = 0;
Eeprom_write_ch_band();
Eeprom_read_freq();
Direct_select();
Tuner_display_freq();
Tuner_DisplayChannel(ChannelNum);
uop = MS_UOP_NOP;
break;
case MS_UOP_10P:
if(TenKeyCnt<9)
TenKeyCnt ++;
else
TenKeyCnt =0;
Osd_display_symbol(TUNER_CH_ROW+3, 6, TenKeyCnt + '0',
OSD_STANDARD, NO_SHADE, OSD_WHITE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_symbol(TUNER_CH_ROW+3, 6+ 1, '-',
OSD_STANDARD, NO_SHADE, OSD_WHITE, BACKGROUND_OFF, DISPLAY_STRING);
break;
case MS_UOP_SEARCH:
MemoryCnt = 0;
if(!b_Mute)
{
if(!noise_down_flag)
temp_volume = g_audio_volume;
g_audio_volume = 0;
Audio_volume_set();
up_volume_flag = 0;
noise_down_flag = 1;
}
bPrevNextSearchFlag = 0;
//Audio_mute(ALL_CHANNEL, AUDIO_MUTE);
Osd_display_string(ST_MO_ROW, ST_MO_COL, STEREO_IND, OSD_STANDARD,
NO_SHADE, OSD_YELLOW, BACKGROUND_OFF, CLEAR_STRING);
FMfreq=FMFREQ_MIN + 5;
AMfreq=AMFREQ_MIN + 9;
ChannelNum = 1;
bSearchDir = 1;
bAutoSearchOK = 0;
Osd_display_string(
OSD_ROW_7, OSD_COLUMN_18, TV_SEARCH,
OSD_STANDARD, OSD_BLUE, OSD_RED, BACKGROUND_OFF,
DISPLAY_STRING
);
AutoSearchStep = 0;
Tuner_DisplayChannel(ChannelNum);
uop=MS_UOP_NOP;
break;
case MS_UOP_NEXT:
if(!b_Mute)
{
if(!noise_down_flag)
temp_volume = g_audio_volume;
g_audio_volume = 0;
Audio_volume_set();
up_volume_flag = 1;
noise_down_flag = 1;
}
ChannelNum++;
if(ChannelNum > MAX_CHANNEL_NUM)
ChannelNum = 1;
Eeprom_write_ch_band();
Eeprom_read_freq();
Direct_select();
Tuner_display_freq();
Tuner_DisplayChannel(ChannelNum);
P_AMP_STANDBY = 0;
uop=MS_UOP_NOP;
break;
case MS_UOP_PREVIOUS:
if(!b_Mute)
{
if(!noise_down_flag)
temp_volume = g_audio_volume;
g_audio_volume = 0;
Audio_volume_set();
up_volume_flag = 1;
noise_down_flag = 1;
}
ChannelNum--;
if(ChannelNum < 1)
ChannelNum = MAX_CHANNEL_NUM;
Eeprom_write_ch_band();
Eeprom_read_freq();
Direct_select();
Tuner_display_freq();
Tuner_DisplayChannel(ChannelNum);
uop=MS_UOP_NOP;
break;
case MS_UOP_FORWARD:
Tuner_handsearch(1);
Tuner_display_freq();
uop=MS_UOP_NOP;
break;
case MS_UOP_BACKWARD:
Tuner_handsearch(0);
Tuner_display_freq();
uop=MS_UOP_NOP;
break;
case MS_UOP_SEARCH_PREV:
MemoryCnt = 0;
if(!b_Mute)
{
if(!noise_down_flag)
temp_volume = g_audio_volume;
g_audio_volume = 0;
Audio_volume_set();
up_volume_flag = 0;
noise_down_flag = 1;
}
Osd_display_string(ST_MO_ROW, ST_MO_COL, STEREO_IND, OSD_STANDARD,
NO_SHADE, OSD_YELLOW, BACKGROUND_OFF, CLEAR_STRING);
bSearchDir = 0;
bAutoSearchOK = 0;
Osd_display_string(
OSD_ROW_7, OSD_COLUMN_18, TV_SEARCH,
OSD_STANDARD, OSD_BLUE, OSD_RED, BACKGROUND_OFF,
DISPLAY_STRING
);
AutoSearchStep = 0;
bPrevNextSearchFlag = 1;
uop=MS_UOP_NOP;
break;
case MS_UOP_SEARCH_NEXT:
MemoryCnt = 0;
if(!b_Mute)
{
if(!noise_down_flag)
temp_volume = g_audio_volume;
g_audio_volume = 0;
Audio_volume_set();
up_volume_flag = 0;
noise_down_flag = 1;
}
Osd_display_string(ST_MO_ROW, ST_MO_COL, STEREO_IND, OSD_STANDARD,
NO_SHADE, OSD_YELLOW, BACKGROUND_OFF, CLEAR_STRING);
bSearchDir = 1;
bAutoSearchOK = 0;
Osd_display_string(
OSD_ROW_7, OSD_COLUMN_18, TV_SEARCH,
OSD_STANDARD, OSD_BLUE, OSD_RED, BACKGROUND_OFF,
DISPLAY_STRING
);
AutoSearchStep = 0;
bPrevNextSearchFlag = 1;
uop=MS_UOP_NOP;
break;
case MS_UOP_STORE:
Eeprom_write_freq();
Osd_display_string(OSD_ROW_7, OSD_COLUMN_14,
MEMORY_OK, OSD_STANDARD, NO_SHADE, OSD_RED, BACKGROUND_OFF,
DISPLAY_STRING);
MemoryCnt = 15;
break;
case MS_UOP_LOC_DX:
if(!b_Mute)
{
if(!noise_down_flag)
temp_volume = g_audio_volume;
g_audio_volume = 0;
Audio_volume_set();
up_volume_flag = 1;
noise_down_flag = 1;
}
Process_loc_dx();
break;
case MS_UOP_SEL_FREQ:
break;
case MS_UOP_ST_MO:
Process_mono_stereo();
break;
default:
break;
}
return uop;
}
void Tuner_init()
{
if(dvd_state_flag)
{
McuSendEss(g_ir_system_code, 0x00ff);
//delay_ms(100);
dvd_state_flag = 0;
}
P_ANT_MOTOR = 1;
if(Cdc_state_flag)
{
ET0=0;
EX0 = 0;
CDCoffPower();
delay_ms(300);
Cdc_state_flag = 0;
}
OSD_send_byte(OSD_COMMAND_9 + GRM); //GRM = 1
OSD_send_byte(0);
cdc_indicator_clear_cnt = 0;
master_volume_cnt = 0;
open_disc_cnt = 0;
main_menu_pointer = TUNER_MENU;
highlight_item = 0;
Switch_to_intersyn();
AV_ID = FM_ID;
OSD_clear_all();
bLocDx = DX;
Init_lc72131();
RADIO_SD_HIGH = 1;
I2C_read_sub(EEPROM_ADDR, CURRENT_CHANNEL, I2C_buffer, 1);
ChannelNum = I2C_buffer[0];
Eeprom_read_freq();
Direct_select();
Osd_tuner_sub_screen();
OsdHeader();
Osd_display_string(TUNER_ROW+5, TUNER_COL + 18, RADIO, OSD_STANDARD,
NO_SHADE, OSD_WHITE,BACKGROUND_ON, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 1, TUNER_COL + 3, PLL_TYPE, OSD_STANDARD,
NO_SHADE, OSD_WHITE,BACKGROUND_ON, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 3, TUNER_COL + 3, CHANNEL, OSD_STANDARD,
NO_SHADE, OSD_WHITE,BACKGROUND_ON, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 5, TUNER_COL + 3, FREQ, OSD_STANDARD,
NO_SHADE, OSD_WHITE,BACKGROUND_ON, DISPLAY_STRING);
Display_background_picture();
Tuner_menu_set();
Tuner_DisplayChannel(ChannelNum);
Tuner_display_freq();
Display_vertical_bar();
AV_Switch(FM_ID);
P_TV_MUTE = 0;
Audio_switch(AUDIO_FM);
I2C_buffer[0] = AV_ID;
I2C_write_sub(EEPROM_ADDR, AV_ID_ADDR, I2C_buffer, 1);
Audio_mute(ALL_CHANNEL, AUDIO_UNMUTE);
if(b_Mute)
Osd_display_string(OSD_ROW_8, OSD_COLUMN_21,
MUTE, OSD_STANDARD, NO_SHADE, OSD_RED, BACKGROUND_OFF,
DISPLAY_STRING);
P_AMP_STANDBY = 0;
P_DVD_POWER=0;
}
#endif
//Display channel
void Tuner_DisplayChannel(Uint8 channel)
{
Uint16 idata temp[3];
if(channel > 9)
temp[0] = channel / 10 + '0';
else
temp[0] = '0';
temp[1] = channel % 10 + '0';
temp[2] = 0xff;
Osd_display_string(TUNER_CH_ROW+3, 6, temp, OSD_STANDARD,
NO_SHADE, OSD_WHITE, BACKGROUND_OFF, DISPLAY_STRING);
}
#if 1
void Display_background_picture()
{
#if 0
Osd_display_string(PICTURE_ROW, PICTURE_COL, TUNER_PICTURE_1, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 1, PICTURE_COL, TUNER_PICTURE_2, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 2, PICTURE_COL, TUNER_PICTURE_3, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 3, PICTURE_COL, TUNER_PICTURE_4, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 4, PICTURE_COL, TUNER_PICTURE_5, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 5, PICTURE_COL, TUNER_PICTURE_6, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 6, PICTURE_COL, TUNER_PICTURE_7, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
#endif
}
#endif
void Tuner_display_picture()
{
#if 0
switch(picture_state)
{
case 6:
Osd_display_string(PICTURE_ROW, PICTURE_COL, TUNER_PICTURE_1, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 1, PICTURE_COL, TUNER_PICTURE_2,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 2, PICTURE_COL, TUNER_PICTURE_3,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 3, PICTURE_COL, TUNER_PICTURE_4,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 4, PICTURE_COL, TUNER_PICTURE_5,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
break;
case 3:
Osd_display_string(PICTURE_ROW, PICTURE_COL, TUNER_PICTURE_21, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 1, PICTURE_COL, TUNER_PICTURE_22,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 2, PICTURE_COL, TUNER_PICTURE_23,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 3, PICTURE_COL, TUNER_PICTURE_24,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 4, PICTURE_COL, TUNER_PICTURE_25,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
break;
case 0:
Osd_display_string(PICTURE_ROW, PICTURE_COL, TUNER_PICTURE_31, OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 1, PICTURE_COL, TUNER_PICTURE_32,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 2, PICTURE_COL, TUNER_PICTURE_33,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 3, PICTURE_COL, TUNER_PICTURE_34,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
Osd_display_string(PICTURE_ROW + 4, PICTURE_COL, TUNER_PICTURE_35,
OSD_STANDARD,
NO_SHADE, OSD_BLUE, BACKGROUND_OFF, DISPLAY_STRING);
break;
}
picture_state++;
if(picture_state > 8)
picture_state = 0;
#endif
}
void AM_FM_indicator_set()
{
if(CurrentBand == FM_BAND)
{
if(bMonoStereo)
{
Osd_display_string(TUNER_ROW + 11, TUNER_COL + 9, STEREO_IND, OSD_STANDARD,
SHADE, OSD_BLACK,CONVEX, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 9, TUNER_COL + 9, MONO_IND, OSD_STANDARD,
SHADE, OSD_YELLOW,CONCAVE, DISPLAY_STRING);
}
else
{
Osd_display_string(TUNER_ROW + 11, TUNER_COL + 9, STEREO_IND, OSD_STANDARD,
SHADE, OSD_YELLOW,CONCAVE, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 9, TUNER_COL + 9, MONO_IND, OSD_STANDARD,
SHADE, OSD_BLACK,CONVEX, DISPLAY_STRING);
}
Osd_display_string(TUNER_ROW + 11, TUNER_COL + 12, FM, OSD_STANDARD,
SHADE, OSD_YELLOW,CONCAVE, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 9, TUNER_COL + 12, AM, OSD_STANDARD,
SHADE, OSD_BLACK,CONVEX, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 1, TUNER_COL +6, FM, OSD_STANDARD,
NO_SHADE, OSD_WHITE,BACKGROUND_OFF, DISPLAY_STRING);
}
else
{
Osd_display_string(TUNER_ROW + 11, TUNER_COL + 9, STEREO_IND, OSD_STANDARD,
SHADE, OSD_BLACK,CONVEX, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 9, TUNER_COL + 9, MONO_IND, OSD_STANDARD,
SHADE, OSD_BLACK,CONVEX, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 11, TUNER_COL + 12, FM, OSD_STANDARD,
SHADE, OSD_BLACK, CONVEX, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 9, TUNER_COL +12, AM, OSD_STANDARD,
SHADE, OSD_YELLOW, CONCAVE, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 1, TUNER_COL +6, AM, OSD_STANDARD,
NO_SHADE, OSD_WHITE,BACKGROUND_OFF, DISPLAY_STRING);
}
}
void LOC_DX_set()
{
if(bLocDx)
{
Osd_display_string(TUNER_ROW + 11, TUNER_COL + 15, DX_IND, OSD_STANDARD,
SHADE, OSD_YELLOW,CONCAVE, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 9, TUNER_COL + 15, LOC_IND, OSD_STANDARD,
SHADE, OSD_BLACK,CONVEX, DISPLAY_STRING);
}
else
{
Osd_display_string(TUNER_ROW + 11, TUNER_COL + 15, DX_IND, OSD_STANDARD,
SHADE, OSD_BLACK, CONVEX, DISPLAY_STRING);
Osd_display_string(TUNER_ROW + 9, TUNER_COL + 15, LOC_IND, OSD_STANDARD,
SHADE, OSD_YELLOW, CONCAVE, DISPLAY_STRING);
}
}
void mute_indicator_set()
{
if(b_Mute)
Osd_display_string(TUNER_ROW + 9, TUNER_COL + 21, MUTE, OSD_STANDARD,
SHADE, OSD_YELLOW,CONCAVE, DISPLAY_STRING);
else
Osd_display_string(TUNER_ROW + 9, TUNER_COL + 21, MUTE, OSD_STANDARD,
SHADE, OSD_BLACK,CONVEX, DISPLAY_STRING);
}
void Tuner_menu_set(void)
{
AM_FM_indicator_set();
LOC_DX_set();
mute_indicator_set();
/*Osd_display_string(TUNER_ROW + 8, TUNER_COL + 1, EXIT1, OSD_STANDARD,
SHADE, OSD_WHITE,CONVEX, DISPLAY_STRING);*/
Tuner_icon_set();
DisplayIcon33(OSD_ICON_TUNER2);
}
void Switch_to_mono()
{
if(CurrentBand == AM_BAND)
return;
RadioIn2Data &= ~BO3_ST;
bMonoStereo = MONO;
Send_data_to_ccb(LC72131_IN2_ADDR, RadioIn2Data, 24);
AM_FM_indicator_set();
Osd_display_string(ST_MO_ROW, ST_MO_COL, STEREO_IND, OSD_STANDARD,
NO_SHADE, OSD_YELLOW, BACKGROUND_OFF, CLEAR_STRING);
}
void Switch_to_stereo()
{
if(CurrentBand == AM_BAND)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -