📄 r2s15902.c
字号:
/* 控制 输入选通 和 高低音 */
void r2s15902_input_tone(uchar input_15902, uchar bass_15902, uchar treble_15902)
{
uchar temp_data;
uchar bass_1,treble_1;
/* ------------ AUX 选通 ---------- */
if(input_15902==OPT_COA_IN)
{ temp_data=0x20; /* INT4 (立体声) */
}
if(input_15902==TUNER_IN)
{ temp_data=0x40; // INT1 TUNER_IN
}
if(input_15902==IPOD_IN)
{ temp_data=0x80; // INT2 IPOD_IN
}
if(input_15902==AUX1_IN)
{ temp_data=0x80; // INT2 AUX1_IN
}
if(input_15902==AUX2_IN)
{ temp_data=0x80; // INT2 AUX2_IN
}
if(input_15902==AUX3_IN)
{ temp_data=0xc0; // INT3 AUX3_IN
}
send_r2s15902_a_byte(temp_data,8);
/* ------------ L/R 输入 -------- */
temp_data=0x00; // AUX IN
if(input_15902==AC_3_IN)
{ temp_data=0x80;
}
send_r2s15902_a_byte(temp_data,1);
/* ------------ 高低音 -------- */
bass_1=bass_15902/2;
bass_1=bass_treble_15902_code[bass_1];
bass_1=bass_1<<4;
treble_1=treble_15902/2;
treble_1=bass_treble_15902_code[treble_1];
temp_data=bass_1+treble_1;
send_r2s15902_a_byte(temp_data,8);
/* ------------ SL/SR/C/SW INPUT -------- */
temp_data=0x00; // AUX IN
if(input_15902==AC_3_IN)
{ temp_data=0x80;
}
if(loud_mode_f==1)
{ temp_data=temp_data+0x40;
}
send_r2s15902_a_byte(temp_data,7);
/* ---------------------------------- */
r2s15902_stop();
}
/* 控制 音量 */
void r2s15902_volume(uchar vol_1_15902, uchar vol_2_15902, uchar slot_15902)
{ uchar temp_byte;
/* L_VOL R_VOL */
temp_byte=0;
send_r2s15902_a_byte(temp_byte,3); // LCH GAIN CONTROL
temp_byte=67-vol_1_15902; temp_byte=temp_byte<<1;
send_r2s15902_a_byte(temp_byte,7); // LCH VOLUME
temp_byte=0;
send_r2s15902_a_byte(temp_byte,3); // RCH GAIN CONTROL
temp_byte=67-vol_2_15902; temp_byte=temp_byte<<1;
send_r2s15902_a_byte(temp_byte,7); // RCH VOLUME
temp_byte=slot_15902;
send_r2s15902_a_byte(temp_byte,4); // SLOT 2
r2s15902_stop();
}
/* 发送数据 temp_byte 为字节数据 n_bit 为多少位n_bit<=8 */
void send_r2s15902_a_byte(uchar temp_byte, uchar n_bit )
{
uchar i;
for(i=0;i<n_bit;i++)
{ r2s15902_clk=0;
_nop_(); _nop_();
if((temp_byte&0x80)==0x80)
{ r2s15902_data=1; }
else
{ r2s15902_data=0; }
temp_byte=temp_byte<<1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
r2s15902_clk=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
r2s15902_data=0;
}
}
/* 发停止信号 */
void r2s15902_stop()
{ r2s15902_data=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
r2s15902_clk=0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
r2s15902_data=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -