?? t10a2_main.c
字號:
if(ram[0]<10)ram[0]= 10;
if(ram[0]>35)ram[0]=35;//音量不能過大
for(j=0;j<10;j++)//檢測讀數
{
for(i=1;i<7;i++)
{
if(ram[10*j+i]>20)ram[10*j+i]=10;
}
if(ram[j*10+7]>11)ram[j*10+7]=5;//mode_select
if(ram[j*10+8]>14)ram[j*10+8]=7;//bass
if(ram[j*10+9]>14)ram[j*10+9]=7;//treable
if(ram[j*10+10]==2)ram[j*10+10]=1;//附加,如果輸出為耳機時轉為2.1ch
if(ram[j*10+10]>2)ram[j*10+10]=0;//output_state
}
if(input_select>12)input_select=0;//ram[101]
if(pingduan>9)pingduan=0;//ram[102]
if(theatre_mode>2)theatre_mode=0;//ram[103]
if((tv_input_f>3)||(ht_input_f>3))//||(tv_input_select>6)||(tv_input_select<4)||(ht_input_select>3))//ram[104]ram[105]
{
tv_input_f=0;
ht_input_f=0;
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);
tv_input_select=6;
ht_input_select=0;
}
if(ht_input_f&BIT(HT_5CH1_ON))
{system_setup|=BIT(TONGBU_5CH1);}
else {system_setup&=~BIT(TONGBU_5CH1);}
if(ht_input_f&BIT(HT_COAXIAL_ON))
{system_setup|=BIT(TONGBU_COAXIAL_ON);}
else {system_setup&=~BIT(TONGBU_COAXIAL_ON);}
cd_input_f=0;//ram[106]
if(cd_input_select>6)cd_input_select=6;
if(kalaok_mode>5)
kalaok_mode=5;//karaok is user mode initialization MIC模式沒保?
mic_select=0;
if(mic_vol1<15)mic_vol1=20;
if(mic_vol2<15)mic_vol2=20;
if(mic_vol1>25)mic_vol1=20;
if(mic_vol2>25)mic_vol2=20;
if(mic_bass>8)mic_bass=4; /*用戶模式*/
if(mic_treble>8)mic_treble=4;
if(mic_delay>16)mic_delay=8;
if(mic_echo>12)mic_echo=6;//讀EPPROM 判
for(i=0;i<4;i++)
{
ram[114+i] = ram_2[i];//mic_bass=mic_bass_user;
}
for(j=0;j<6;j++)
{
for(i=1;i<7;i++)
{
if(ram_ht[j*9+i]>20)ram_ht[j*9+i]=10;
}
if(ram_ht[j*9+7]>14)ram_ht[j*9+7]=7;
if(ram_ht[j*9+8]>14)ram_ht[j*9+8]=7;
if(ram_ht[j*9+9]==2)ram_ht[j*9+9]=1;//附加,如果輸出為耳機時轉為2.1ch
if(ram_ht[j*9+9]>2)ram_ht[j*9+9]=0;
}
if(mode_select_ht>5)
{mode_select_ht=5;//家庭影院出廠值重寫
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];
}
}
ram_cd[0]=0;
for(i=1;i<7;i++)
{
if(ram_cd[i]>20)ram_cd[i]=10;
}
if(ram_cd[7]>14)ram_cd[7]=7;
if(ram_cd[8]>14)ram_cd[8]=7;
if(ram_cd[9]==2)ram_cd[9]=1;//附加,如果輸出為耳機時轉為2.1ch
if(ram_cd[9]>2)ram_cd[9]=0;
if(output_state_tv==2)output_state_tv=1;
if(output_state_tv>2)output_state_tv=0;
if(output_state_ht==2)output_state_ht=1;
if(output_state_ht>2)output_state_ht=0;
//if(mode_tv_flag>1)mode_tv_flag=0;
//if(mode_tv_flag==1)bdata5_flag|=BIT(TV2_SINGLE);//電視影院,M MODE
input_select_bak=input_select;
/****************送初值,調試************************/
ad_channel=2;
// AD_select_channel();
/**************************************************/
/***************************************************/
PORTA&=~BIT(MUTE_KARAOK); //靜KARAOK
for(j=0;j<6;j++)//開機MUTE
{
ram_1[j]=0;
}
bdata7_flag&=~BIT(decode_mute); //2007/05/28 上電清DECODE_MUTE
touch_cm6930_line=0x00;
bdata7_flag&=~BIT(mode_adj_f);
//bdata7_flag&=~BIT(mute_off_f);
bdata0_flag|=BIT(VOL_UP_FLAG);//VOL_UP_FLAG=1;
bdata0_flag&=~BIT(VOL_DOWN_FLAG);// VOL_DOWN_FLAG=0;
input_select_disposal();
//sendbyte1_r2s15902();
sendbyte2_r2s15902();
sendbyte3_r2s15902();
sendbyte4_r2s15902();
//bdata1_flag|=BIT(CHANNLE_2AND5_F);//調試用,改為5.1CH
bdata0_flag|=BIT(CHECK_SINGLE_ALLOW);//CHECK_SINGLE_ALLOW=1; 允許檢測信號
pinpu_class=0x00; //屏譜種類
display_state=1;
ADCSRA|=BIT(ADSC);//起動一次AD轉換
bdata0_flag&=~BIT(RUN_F);//測試時開機
bdata2_flag|=BIT(STANDBY_F);//待機打開
bdata2_flag&=~BIT(TURN_ON_F);//TURN_ON_F=0
//watchdog_init();
standby_led=0x40;
SEI();
video_select=2;
video_disposal();
/******************最近新加******************/
//bdata4_flag|=BIT(DISPLAY_SLOW_F);//暫屏蔽慢顯
//write_data_display(0,13,&long_avlight[13]);//暫屏蔽慢顯
disp_line=41;//新 2007/4/1
delay_ms(2000);
Initial_ATA_2508();
delay_ms(2000);
while(1)
{
if(remote_counter>10) //10ms
{
first_int_f=0;
remote_data=0;
remote_data1=0;
remote_bit=0;
}
//WDTCR|=0x18;/*關閉看門狗*/
//WDTCR&=~BIT(WDE);
if(remote_continue_f==1)//檢測是否放開按鍵,如果放開remote_cnt>250,就清remote_data2bak中的內容
{
if(remote_counter>100)//100ms不按清0
{
remote_continue_f=0;
remote_counter=0;
remote_counter1=0;
remote_data2bak=0;
remote_bit=0;
if (remote_data2 == 0)
{
remote_data2 = 0xff;
Flg_Standby_SW = 0;
}
Flg_Standby_SW1 = 0;
}
}
//WDTCR=0x0f;
if(counter_10ms>=5)
{
counter_10ms=0;
counter_50ms++;
}
if(counter_50ms>=2)
{
LED_Flash_Timer1 = 1;
counter_50ms=0;
counter_100ms++;
counter_100ms1++;
time_flag|=BIT(FLAG_100MS); //100ms標志位
if (remote_data2 == 0 && (remote_continue_f == 1) && (Flg_Standby_SW == 1))
{
Standby_SW_Timer++;
}
else
{
Standby_SW_Timer = 0;
}
}
if(counter_100ms1>=2)
{
counter_100ms1=0;
time_flag|=BIT(FLAG_200MS);
}
if(counter_100ms>=5)
{
counter_100ms=0;
counter_500ms_new++;
time_flag|=BIT(FLAG_500MS);
}
if(counter_500ms_new>=2)
{
counter_500ms_new=0;
time_flag|=BIT(FLAG_1S);
}
if(!(bdata0_flag&BIT(RUN_F)))//RUN_F=0
{
if(!(bdata2_flag&BIT(TURN_ON_F)))//TURN_ON_F=0;
{
if(remote_data2==0x00) //
{
if (Standby_SW_Timer > 25) //關電源
{
PORTD|=BIT(STANDBY_SWITCH);
}
else if (Flg_Standby_SW == 0)
{
input_select=input_select_bak;
if(input_select<4)
ht_input_select=input_select;
else if(input_select<7)
tv_input_select=input_select;
//else if(input_select<10)
//{if(!(cd_input_f&BIT(USB_INSERT_F)))input_select=0;}
//else if(input_select<13)
//{if(!(cd_input_f&BIT(CARD_INSERT_F)))input_select=0;}
else //asm("nop");
{
input_select=0;
ht_input_select=0;
}
input_select_disposal();
turn_on_init();
Flg_Standby_SW1 = 1;
}
}
if(time_flag&BIT(FLAG_10MS))//FLAG_10MS 處理
{
time_flag&=~BIT(FLAG_10MS);
counter_karaok_10ms++;
if(bdata3_flag&BIT(OK1_INSERT_FLAG))
{
if(!(PINF&BIT(MICIN_1)))no_ok1single_counter++;//ok 拔出
if((no_ok1single_counter>15)&&(counter_karaok_10ms<20))//新加ok檢測,待修改
{
bdata3_flag&=~BIT(OK1_INSERT_FLAG);
MIC_Signal_OK = 0;
no_ok1single_counter=0;
//王明文添加
state_counter=6;
Disp_Type = MIC_1;
VFD_Variable = MIC_Pullout;
Display_Proc(MIC_Connect_DisMode);
Flg_MIC_Disp = 1;
}
}
else
{
if(PINF&BIT(MICIN_1))ok1_single_counter++;//KARA OK檢測放到外面處理
if((ok1_single_counter>15)&&(counter_karaok_10ms<20))//新加ok檢測,待修改
{
bdata3_flag|=BIT(OK1_INSERT_FLAG);
// bdata7_flag&=~BIT(decode_mute);
ok1_single_counter=0; //MIC1 INSERT
//王明文添加
state_counter=6;
Disp_Type = MIC_1;
VFD_Variable = MIC_Insert;
Display_Proc(MIC_Connect_DisMode);
Flg_MIC_Disp = 1;
}
}
if(bdata3_flag&BIT(OK1_INSERT_FLAG) && MIC_Signal_OK == 0)
{
MIC_Signal_OK = 1;
// input_select=0;
input_select=input_select_bak;
if(input_select<4)
ht_input_select=input_select;
else if(input_select<7)
tv_input_select=input_select;
//else if(input_select<10)
//{if(!(cd_input_f&BIT(USB_INSERT_F)))input_select=0;}
//else if(input_select<13)
//{if(!(cd_input_f&BIT(CARD_INSERT_F)))input_select=0;}
else //asm("nop");
{
input_select=0;
ht_input_select=0;
}
input_select_disposal();
//write_data_display(0,13,mic_insert_display);
turn_on_init();
}
if(counter_karaok_10ms>=20)
{
counter_karaok_10ms=0;
no_ok1single_counter=0;
ok1_single_counter=0;
}
}
}
else //TURN_ON_F=1;
{
//PORTC&=~BIT(POWER_DECODER);
//PORTC|=BIT(POWER_DECODER); ////解碼板打開
/************************開機,繼電器開關打開**************************/
if(counter_500ms==0)
{
if(theatre_mode==0)//視頻處理還得改
video_select=3;
else if(theatre_mode==1)
video_select=1;
else
video_select=2;
video_disposal();//新加
remote_data2=0xff;//附加清零
anjian=0xff;//附加
ad_channel=2;//屏譜老是沒了,重新開機時再送一次.
// AD_select_channel();//新加
output_disposal(); /*開機暫放在這*/
bdata0_flag|=BIT(RUN_F);//測試時開機
bdata2_flag&=~BIT(STANDBY_F);//待機打開
// PORTD&=~BIT(STANDBY_SWITCH);//繼電器開機
// delay_ms(10);
if(bdata3_flag&BIT(OK1_INSERT_FLAG))
{PORTA|=BIT(MUTE_KARAOK);//打開OK
write_2313_page();/*kalaok 音量,EQ*///插入OK馬上?
write_mic_delay();//
MIC_Signal_OK = 1;
}
delay_us(5);
bdata7_flag&=~BIT(adj_5_2);
touch_cm6930_line=0x00;
//TWCR= 0x45; //enable twi
menu_address=0;//改
bdata3_flag&=~BIT(MENU_OPEN_F);
osd_byte[0]=0;
osd_byte[1]=0;
static_counter_10ms=0;//新加
static_state_counter=0;
//state_counter=0;//新加,一進run,馬上顯示屏譜
/*if(input_select>6)
{remote_data2=0x27;
}*/
bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
}
}
if(time_flag&BIT(FLAG_1S))
{
time_flag&=~BIT(FLAG_1S);
counter_1s_standbyled++;
if(counter_1s_standbyled>1)
{counter_1s_standbyled=0;
if(standby_led!=0)
standby_led=0;
else standby_led=0x40;
}
counter_1s_poweroff++;
if(counter_1s_poweroff>600)
{
PORTD|=BIT(STANDBY_SWITCH);
}
}
if(time_flag&BIT(FLAG_500MS))//FLAG_500MS
{
time_flag&=~BIT(FLAG_500MS);
Temperature_Detect();
if(state_counter>0)//狀態定時
{state_counter--;}
else
{
if (Disp_Register != 0)
{
Disp_Register = 0;
}
}
if(counter_500ms>0)counter_500ms--;
//修改 手動關機之后,檢測是否無信號,是,轉入自動開機狀態
if(bdata0_flag&BIT(STANDBY_SINGLECHECK_F))//&&(cd_input_f==0))//有USB,卡時不進入.
{
if(cd_input_f==0)//改
{
single_1s_counter++;
if(!(PINC&BIT(CHECK_SINGLE)))
counter_1s_check++;//有信號加一
if(single_1s_counter>=121)
{
single_1s_counter=0;
counter_1s_check=0;
}
if((single_1s_counter>=120)&&(counter_1s_check<50)) //一分鐘,可能要修改數值
{
bdata0_flag|=BIT(CHECK_SINGLE_ALLOW);//check_single_allow=1;//允許自動開機
bdata0_flag&=~BIT(STANDBY_SINGLECHECK_F);//standby_singlecheck_f=0;
}
}
}
}
if(time_flag&BIT(FLAG_200MS))
{
time_flag&=~BIT(FLAG_200MS);
}
if(time_flag&BIT(FLAG_100MS))//FLAG_100MS 處理
{
time_flag&=~BIT(FLAG_100MS);
if(bdata7_flag&BIT(mute_off_f))
{
if (touch_flag & BIT(Temperature95))
{
PORTD|=BIT(STANDBY_SWITCH);
}
//王明文添加
CLEAR_VFD();
VFD_Display_Mode = Initial_DisMode;
//Flg_Standby_SW = 0;
PORTC&=~BIT(POWER_DECODER);
PORTC|=BIT(STANDBY);
counter_1s_poweroff=0x00;
data_4094&=~BIT(led_green);
data_4094&=~BIT(led_blue);
write4094(data_4094);
bdata7_flag&=~BIT(mute_off_f);
}
//WDR();
//WDTCR=0x18;/*關閉看門狗*/
//WDTCR=0x00;
if(touch_flag&BIT(CONTINUE_F))//按鍵連續500ms之后,才清0,有效
{
if((touch_value_bak==0)||(touch_value_bak==1)) //可以在這里做去抖動,長按,或按鍵松才進行操作
{
touch_counter1++;
if(touch_counter1>4)
{
touch_value_bak=0xff;
touch_counter1=5;
}
}
}
if(bdata2_flag&BIT(TURN_ON_F))
{
//if(disp_line<40)//40
//{write_data_display_1(0,13,&disp_buffer[disp_line]);}//流動
if((disp_line==12)||(disp_line==25)||(disp_line==38))counter0_100ms=5;//12,25,39
if(disp_line<41)//41
{
if((disp_line==13)||(disp_line==26)||(disp_line==39))
{
if(counter0_100ms==0)
disp_line+=1;
}
else
disp_line+=1;
}
if(counter0_100ms>0)counter0_100ms--;
}
//WDTCR=0x0f;
}
if(time_flag&BIT(FLAG_5MS))//FLAG_100MS 處理
{
time_flag&=~BIT(FLAG_5MS);
if(!(bdata2_flag&BIT(TURN_ON_F)))//TURN_ON_F=0;如果遙控按鍵按下則不進
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -