📄 t10a2_drive.c
字号:
ram_1[j]-=1;
if(ram_1[j]>70)ram_1[j]=0;
bdata2_flag|=BIT(VOL_CHANGE_F);
}
j++;
if(!(bdata1_flag&BIT(CHANNLE_2AND5_F)))
{
if(j==2)j=5;
}
}while(j<6);
}
void ht_vol_disposal(void)//处理HT模式 音量
{
uchar j=0;
do
{
if(ram[0]+ram_ht[9*mode_select_ht+j+1]<10)
{
ram_ht[9*mode_select_ht+j+1]=10-ram[0];
bdata2_flag|=BIT(VOL_CHANGE_F);
}
if(ram_1[j]<(ram[0]+ram_ht[9*mode_select_ht+j+1]-10))
{
ram_1[j]+=1;
if(ram_1[j]>70)ram_1[j]=70;
bdata2_flag|=BIT(VOL_CHANGE_F);
}
if(ram_1[j]>(ram[0]+ram_ht[9*mode_select_ht+j+1]-10))
{
ram_1[j]-=1;
if(ram_1[j]>70)ram_1[j]=0;
bdata2_flag|=BIT(VOL_CHANGE_F);
}
j++;
if(!(bdata1_flag&BIT(CHANNLE_2AND5_F)))
{
if(j==2)j=5;
}
}while(j<6);
}
void cd_vol_disposal(void)//处理CD模式 音量
{
uchar j=0;
do
{
if(ram[0]+ram_cd[j+1]<10)
{
ram_cd[j+1]=10-ram[0];
bdata2_flag|=BIT(VOL_CHANGE_F);
}
if(ram_1[j]<(ram[0]+ram_cd[j+1]-10))
{
ram_1[j]+=1;
if(ram_1[j]>70)ram_1[j]=70;
bdata2_flag|=BIT(VOL_CHANGE_F);
}
if(ram_1[j]>(ram[0]+ram_cd[j+1]-10))
{
ram_1[j]-=1;
if(ram_1[j]>70)ram_1[j]=0;
bdata2_flag|=BIT(VOL_CHANGE_F);
}
j++;
if(!(bdata1_flag&BIT(CHANNLE_2AND5_F)))
{
if(j==2)j=5;
}
}while(j<6);
}
void vol_up_slowly_disposal(void)
{
if(bdata4_flag&BIT(AUTO_SEARCH_F))return;//自动搜索状态,不打开音量
//if(bdata6_flag&BIT(OUT_PUT_FLAG0))return;//2007/5/6 解码第一次进OUTPUT方式未送之前静音
if((bdata0_flag&BIT(VOL_UP_FLAG))&&(!(bdata0_flag&BIT(MUTE_F)))&&(!(bdata2_flag&BIT(TURN_OFF_F)))/*&&(!(bdata4_flag&BIT(EDITOR_ADD_F)))*/)//VOL_UP_FLAG&!MUTE_F//更改//新加,标志位
{
//mute=0;//静音开关打开
if(bdata1_flag&BIT(CHANNLE_2AND5_F))//CHANNLE_2AND5_F=1
{
switch(theatre_mode) //处理5.1ch音量
{
case 0:
tv_vol_disposal();
break;
case 1:
ht_vol_disposal();
break;
case 2:
cd_vol_disposal();
break;
default:
break;
}
}
else //CHANNLE_2AND5_F=0 处理2.1ch音量
{
if(sl_vol_bak!=0)
{
sl_vol_bak=0;
bdata2_flag|=BIT(VOL_CHANGE_F);
}
if(sr_vol_bak!=0)
{
sr_vol_bak=0;
bdata2_flag|=BIT(VOL_CHANGE_F);
}
if(ce_vol_bak!=0)
{
ce_vol_bak=0;
bdata2_flag|=BIT(VOL_CHANGE_F);
}
switch(theatre_mode)
{
case 0:
tv_vol_disposal();
break;
case 1:
ht_vol_disposal();
break;
case 2:
cd_vol_disposal();
break;
default:
break;
}
}
if(bdata2_flag&BIT(VOL_CHANGE_F))//VOL_CHANGE_F=1;写音量
{
bdata2_flag&=~BIT(VOL_CHANGE_F);
sendbyte1_r2s15902();//bass,treble
sendbyte2_r2s15902();//fl,fr
sendbyte3_r2s15902();//cen,sw,
sendbyte4_r2s15902();//sl,sr
}
}
}
void reset_disposal(void)//出厂设置, 改
{
uchar i,j;
ram[0]=30;
for(j=0;j<10;j++)//检测读数
{
for(i=1;i<3;i++)
{
ram[10*j+i]=10;//电视影院
}
ram[10*j+5]=10;
ram[10*j+6]=10;
//ram[j*10+7]=5;
ram[10*j+3]=tv_mode_parameter[ram[j*10+7]][0];
ram[10*j+4]=tv_mode_parameter[ram[j*10+7]][1];
ram[10*j+8]=tv_mode_parameter[ram[j*10+7]][2];
ram[10*j+9]=tv_mode_parameter[ram[j*10+7]][3];
//ram[j*10+7]=5;//模式不清? //ram[j*10+8]=7;//bass //要对应相应模式
//ram[j*10+9]=7;//treable
ram[j*10+10]=0;//输出5.1
}
tv_input_f|=BIT(TV_5CH1_ON);
tv_input_f|=BIT(TV_COAXIAL_ON);
ht_input_f|=BIT(HT_5CH1_ON);
ht_input_f&=~BIT(HT_COAXIAL_ON);
system_setup|=BIT(TONGBU_5CH1);/*要随时修改,跟上面一定要对应*/
system_setup&=~BIT(TONGBU_COAXIAL_ON);
ram_ht[0]=5;//mode
for(j=0;j<6;j++)
{
for(i=1;i<7;i++)
{
ram_ht[j*9+i]=10;
}
ram_ht[j*9+7]=7;
ram_ht[j*9+8]=7;
ram_ht[j*9+9]=0;//输出5.1
}
for(j=0;j<6;j++)//家庭影院调模式
{
ram_ht[j*9+3]=ht_mode_parameter[j][0];
ram_ht[j*9+4]=ht_mode_parameter[j][1];
ram_ht[j*9+7]=ht_mode_parameter[j][2];
ram_ht[j*9+8]=ht_mode_parameter[j][3];
}
for(i=1;i<7;i++)
{
ram_cd[i]=10;
}
ram_cd[7]=7;
ram_cd[8]=7;
ram_cd[9]=0;//输出5.1
bdata6_flag&=~BIT(SPEAKER_BIG_FLAG);//恢复成小喇叭
bdata6_flag|=BIT(CHANGE_SPEAKER);
ram[112]=20;//mic_vol1=20;
ram[113]=20;//mic_vol2=20;
mic_echo=6;
mic_echo_user=6;
mic_delay=8;
mic_delay_user = 8;
mic_treble=4;
mic_treble_user=4;
mic_bass=4;
mic_bass_user=4;
// PORTB&=~BIT(SPEAKER_SELECT); // 1204
//卡拉OK复位没有写
sendbyte1_r2s15902();
sendbyte2_r2s15902();
sendbyte3_r2s15902();
sendbyte4_r2s15902();
bdata0_flag|=BIT(VOL_DOWN_FLAG);
vol_max();
write_2313_page();/*kalaok 未写*/
write_mic_delay();//kalaok delay
bdata2_flag|=BIT(EEPROM_SAVE_F);
}
void write4094(uchar data4094)
{
uchar Bits=0;
PORTD&=~BIT(stb_4094);
PORTD&=~BIT(scl_4094);
for(Bits = 0; Bits < 8; Bits++ )
{
if(data4094&0x80)
PORTD|=BIT(sda_4094);
else PORTD&=~BIT(sda_4094);
data4094<<=1;
PORTD|=BIT(scl_4094);
delay_us(3);
PORTD&=~BIT(scl_4094);
}
PORTD|=BIT(stb_4094);
delay_us(3);
PORTD&=~BIT(stb_4094);
}
void Rotary_Proc(void)
{
static unsigned char Rotary_Code = 0;
uchar Rotary_Temp = 0;
Rotary_Temp = Rotary_Code;
//if(!(PINC&BIT(CHECK_SINGLE)))
if (TEST_BIT(PINB,KEYVOLA))
{
Rotary_Temp |= 0x02;
}
else
{
Rotary_Temp &= 0xFD;
}
if (TEST_BIT(PINB,KEYVOLB))
{
Rotary_Temp |= 0x01;
}
else
{
Rotary_Temp &= 0xFE;
}
if (Rotary_Temp != Rotary_Code)
{
Rotary_Code <<= 1;
if (TEST_BIT(PINB,KEYVOLA))
{
Rotary_Code |= 0x01;
}
else
{
Rotary_Code &= 0xFE;
}
Rotary_Code <<= 1;
if (TEST_BIT(PINB,KEYVOLB))
{
Rotary_Code |= 0x01;
}
else
{
Rotary_Code &= 0xFE;
}
if (Rotary_Code == 0xE1) //0xB4也可以 VOL+
{
remote_data2 = 0x15;
}
else if (Rotary_Code == 0xD2) //0xE8也可以 VOL-
{
remote_data2 = 0x14;
}
}
}
//====================================================================
void buzzer_ok_rou(void)
{
OCR0 = 50;
b_stop_beep_timer = 5;
po_buzzer_set(1);
}
//--------------------------------------------------------------
void buzzer_fail_rou(void)
{
OCR0 = 200;
b_stop_beep_timer = 2;
po_buzzer_set(1);
}
/******************************************************************************/
/* Function: LED漫漫熄灭,慢慢点亮
/* Input: none
/* Output: none
/******************************************************************************/
void LED_Flash(void)
{
static unsigned char LED_Rate = 0;
static unsigned char F_LED_Flash = 0;
if (!(bdata0_flag&BIT(RUN_F)) && (!(bdata2_flag&BIT(TURN_ON_F))))
{
data_4094&=~BIT(led_blue);
if (LED_Flash_Timer <= LED_Rate)
{
data_4094&=~BIT(led_green);
write4094(data_4094);
}
else
{
data_4094|=BIT(led_green);
write4094(data_4094);
}
if (LED_Flash_Timer == 0)
{
LED_Flash_Timer = 20;
}
if (LED_Flash_Timer1 == 1)
{
LED_Flash_Timer1 = 0;
if (F_LED_Flash == 0)
{
if (LED_Rate < 10)
{
LED_Rate = LED_Rate + 1;
}
else
{
LED_Rate = LED_Rate + 1;
}
}
else
{
if (LED_Rate > 10)
{
LED_Rate = LED_Rate - 1;
}
else
{
LED_Rate = LED_Rate - 1;
}
}
if ((LED_Rate >= 30)||(LED_Rate <= 0))
{
if (F_LED_Flash == 0)
{
F_LED_Flash = 1;
}
else
{
F_LED_Flash = 0;
}
}
}
}
else
{
F_LED_Flash = 1;
LED_Rate = 30;
LED_Flash_Timer = 0;
VFD_isr();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -