📄 main.c
字号:
/*====================================================================*/
/****** 延时时间单位-- 计时程序(多任务) ******/
void timeu_do(void)
{
uchar i;
timeu--; /*延时字节*/
if (timeu==0)
{
b_timeu=1; /*延时字节等于0时,设置位等于1*/
timeu=DEL_TIMEU; /* 重置 DEL_TIMEU=5 */
/********************************/
}
else b_timeu=0; /*没有到时,标志位清0,在一次主循环中只有一次有效*/
}
/******** 共用延时函数, 非多任务的, 参数为需要的延时时间 *******/
void pub_delay_do(uint x)
{ /* 每时间单位=1ms */
uchar i;
while (x!=0)
{
dog_main=DOG_MAIN; /* 恢复main看门狗计数数 */
for (i=103; i!=0; i--) /* 1ms循环时间, 6M晶振 */
{;} /*空操作*/
x--;
}
}
/******************上电恢复原先的数据*************/
void restore(void)
{
uchar i;
balan_val=9; /*左等于右*/
master_val=45;
sl_val=45;
sr_val=45;
cen_val=45;
dim_num=7;
b_close_mach=1;
pwr_key_del=0;
display_num=6;
input_control(); /*选通输入选择*/
for(i=0;i<8;i++)
{
ad_in[i]=0; /*有频谱后把频谱数据清除*/
}
}
void mach_display(void)
{
string_att=STRING_PROMPT; /* 设显示为提示方式 */
string_del=STRDEL_PA; /* 设显示停留时间 */
string_num=input_att; /* "xxxxxxx" */
}
/*==========================================================================================*/
void peng_top(void) /*频谱顶点保留*/
{
uchar i;
/*********************/
for(i=0;i<25;i++)
{
if(ad_disp_line[i]>15) ad_disp_line[i]=0;
}
/*********************/
if(pot_test<8) pot_test++; /*延时处理,经过多少次主程序(顶点保留时间长度)*/
else pot_test=0;
if(pot_test==4)
{
if(display_num==6)
{
for(i=0;i<25;i++)
{
if(ad_disp_line[i]!=0) ad_disp_line[i]--; /*顶点从上向下掉下*/
}
}
else if((display_num==5)||(display_num==7))
{
for(i=0;i<25;i++)
{
if(ad_disp_line[i]<15) ad_disp_line[i]++; /*顶点从上向下掉下*/
else ad_disp_line[i]=0;
}
}
}
for(i=0;i<25;i++)
{
if(ad_disp_line[i]<tdig_offset[i]) ad_disp_line[i]=tdig_offset[i]; /*取得新顶点*/
}
}
void sys_start_do(void) /*开机音量从0增加到上次关机前的记忆值*/
{
if((sys_start)&&(auto_select_flg==0))
{
sys_cont--;
if(sys_cont==0) /*音量增加时间到*/
{
sys_cont=SYS_COUNT;
if(master_val<35)
{
blrk_process=1; /*主音加1*/
blrk_direct=1; /*主音加1*/
lrk_del=0;
}
else
{
sys_start=0;
}
}
}
}
void auto_source_select(void) /*自动音源选择*/
{
uchar i;
if(auto_select_flg) /*经过一定时间开始自动音源检测*/
{
auto_cout--;
/**************/
/* adpro(); 再采集一次*/
// for(i=0;i<8;i++)
// {
// if(ad_in[i]>2)
// {
// get_peng_flg=1;
// break;
// }
// }
/*************/
if(auto_cout==0)
{
auto_cout=AUTO_COUNT1;
adpro();
for(i=0;i<8;i++)
{
if(ad_in[i]>1)
{
get_peng_flg=1;
break;
}
}
if(get_peng_flg)
{
auto_select_flg=0; /*=0已检测到音源*/
bc_jin=1; /* 预置过载检测口高电平 */
bc_jout=0; /* 继电器控制脚, 0=合上 */
if(input_att==INPUT_AC3)
{
if(dsp_att!=DSP_NO)
{
/******** 高低音恢复子程序 ********/
tre_bass_restore();
}
}
mach_display();
}
else
{
if(input_att<4) input_att++;
else input_att=0;
if(input_att==input_att_bak)
{
input_att=input_att_bak;
auto_select_flg=0; /*自动音源选择标志位*/
bc_jin=1; /* 预置过载检测口高电平 */
bc_jout=0; /* 继电器控制脚, 0=合上 */
}
input_control(); /*音源输入选择*/
mach_display(); /*先选通AC-3输入*/
}
}
}
}
void set_led_state(bit lrk_flg)
{
par[0]=0;
if(b_close_mach) par0_2=1; /*power*/
else
par0_2=b_test; /*关机电源灯闪动*/
if(b_close_mach)
{
if (ad_delay)
{
ad_delay--;
if (lrk_flg)
{
if ((test&0x01)==0)
{
par0_0=1;
par0_1=1;
}
else
{
par0_0=0;
par0_1=0;
}
}
else
{
par0_0=1;
par0_1=1;
}
}
else
{
par0_0=1;
par0_1=1;
}
}
else
{
par0_0=0;
par0_1=0;
}
}
void led_control(void)
{
if(b_timeu)
{
test=(test+1)&0x0f;
if ((test&0x03)==0)
b_test=!b_test;
set_led_state(!blrk_direct);
wled_6311();
set_led_state(blrk_direct);
twled_6311();
}
}
void auto_display(void)
{
if((b_auto_disp)&&(b_timeu))
{
if(a24_start<40) a24_start++;
else
{
a24_start=0;
if(display_num<7) display_num++;
else display_num=0;
}
}
}
void fresh_input(void)
{
if((b_timeu)&&(auto_select_flg==0))
{
if(b_intmute==0)
{
tre_bass_do();
if((input_att==INPUT_AUX)||(input_att==INPUT_AC3))
{
bc_inputa=1;
bc_inputb=1;
}
else if(input_att==INPUT_TAPE)
{
bc_inputa=0;
bc_inputb=0;
}
else if(input_att==INPUT_VCD)
{
bc_inputa=1;
bc_inputb=0;
}
else if(input_att==INPUT_DVD)
{
bc_inputa=0;
bc_inputb=1;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -