📄 pt2320._c
字号:
/*pt2320*/
#include <iom163.h>
#include "..\main.h"
#include "..\io.h"
#define PT_LMM 0x10
#define PT_RMM 0x20
#define PT_MC 0x30
#define PT_LMR 0x40
#define PT_RMR 0x50
#define PT_MSW 0x60
#define PT_FSEL 0x70
#define PT_BASS 0x90
#define PT_INTER 0xa0
#define PT_TREBLE 0xb0
#define PT_SWITCH 0xc0
#define PT_MVOL_ONE 0xd0
#define PT_MVOL_TEN 0xe0
#define PT_RESET 0xf0
#define DVD_CH 0x07
#define AV3_CH 0x06
#define AV2_CH 0x05
#define AV1_CH 0x04
#define TUNER_CH 0x03
unsigned char Mchvol=30,Treblevol=7,Bassvol=7,Balanceval=7,Loudnessval=0;
unsigned char pt_fsel_val=4;
#ifndef NO_SIX_CHANNEL_OUTPUT
unsigned char Schvol=8,SWchvol=8,Cchvol=8;
#endif
#define pt2320_switch(x) pt2320_write(PT_SWITCH|x)
extern unsigned char muted,work_mode,rds_display_type,display_type,g_ui_tmp_msg_cnt;
extern unsigned int g_vfd_grid_buffer[];
void pt2320_3d(void)
{
if(Loudnessval)
pt_fsel_val &= 0x0b;
else
pt_fsel_val |= 0x04;
pt2320_write(PT_FSEL|pt_fsel_val);
}
void set_balance(void)
{
unsigned char val1;
if(Balanceval<7)
{
val1= 7-Balanceval;
val1 <<=1;
}
else
val1 = 0;
pt2320_write(PT_RMM|++val1);
if(Balanceval>7)
{
val1=Balanceval-7;
val1<<=1;
}
else
val1 = 0;
pt2320_write(PT_LMM|++val1);
}
#define PT2320_ADD 0x88
void pt2320_vol(void)
{
unsigned char val_one,val_ten;
//temp_val = Mchvol;
if(Mchvol==0)
{
val_one =9;
val_ten =7;
}
else
{
val_one = 60-Mchvol;
val_ten = val_one/10;
val_one %= 10;
}
//Mchvol = vol_table[Mchvol];
//VFD_volume = (BYTE)temp_val&0x3f;
i2c_write(PT2320_ADD,PT_MVOL_TEN|val_ten,PT_MVOL_ONE|val_one);
}
unsigned char bt_trans(unsigned char val)
{
if(val>7)
val = (22-val);
return val;
}
void pt2320_bass(void)
{
unsigned char bass;
bass = bt_trans(Bassvol);
pt2320_write(PT_BASS|bass);
}
void pt2320_treble(void)
{
unsigned char treble;
treble = bt_trans(Treblevol);
pt2320_write(PT_TREBLE|treble);
}
void pt2320_Cch(void)
{
pt2320_write(PT_MC|(15-Cchvol));
}
void pt2320_SWch(void)
{
pt2320_write(PT_MSW|(15-SWchvol));
}
void pt2320_Sch(void)
{
i2c_write(PT2320_ADD,PT_LMR|(15-Schvol),PT_RMR|(15-Schvol));
}
void pt2320_init(void)
{
pt2320_vol(); //vol
set_balance();
pt2320_bass(); //BASS
pt2320_treble(); //treble
pt2320_3d();
#ifndef NO_SIX_CHANNEL_OUTPUT
pt2320_Cch();
pt2320_SWch();
pt2320_Sch();
#endif
}
void work_mode_convert(void)
{
unsigned char i;
#ifdef SGJM_RDS
rds_display_type = DIS_FREQUENCY;
#endif
muted = 1;
MCU_mute();
delay_ms(100);
i2c_write(PT2320_ADD,PT_MVOL_TEN|7,PT_MVOL_ONE|9);
delay_ms(100);
decoder_power_off();
SPCR = 0x00;
Set_FS1_L();
switch(work_mode)
{
case TUNER_MODE: //Radio Mode
//decoder_power_off();
Set_FS1_H();
#ifdef SGJM_RDS
rds_display_type = 0;
#endif
pt2320_switch(TUNER_CH);
init_radio();
break;
case AV2_MODE: //AV Mode
//decoder_power_off();
pt2320_switch(AV2_CH);
break;
case AV1_MODE:
//decoder_power_off();
pt2320_switch(AV1_CH);
break;
case DVD_MODE:
decoder_power_on();
delay_ms(200);
for(i=0;i<12;i++)
g_vfd_grid_buffer[i] = 0;
Set_String(" DVD");
SPCR = 0xec;
pt2320_switch(DVD_CH);
break;
default:
decoder_power_off(); //Standby Mode
pt2320_switch(DVD_CH);
break;
}
delay_ms(100);
pt2320_init();
delay_ms(100);
if(work_mode!=POWER_OFF_MODE)
{
muted = 0;
MCU_mute();
};
display_type = DISPLAY_WELCOME;
g_ui_tmp_msg_cnt = 10;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -