📄 key_io.c
字号:
#include "sfr_r82b.h"
#include "main.h"
#include "global.h"
unsigned char key_tag_flag;
unsigned char preset_key_1s5_buff;
// static unsigned char key_release = 1;
// unsigned char key_release = 1;
/* it's enough to use 3 bytes for function key flag management */
/*
unsigned char T1_2key_flag;
unsigned char T1_3key_flag;
unsigned char Test1_flag;
unsigned char T2_2key_flag;
unsigned char T2_3key_flag;
unsigned char Test2_flag;
unsigned char T3_key_flag;
unsigned char Test3_flag;
unsigned char T4_2key_flag;
unsigned char T4_3key_flag;
unsigned char Test4_flag;
unsigned char T5_2key_flag;
unsigned char T5_3key_flag;
unsigned char Test5_flag;
*/
/* unsigned char led_seg_0; */
/* unsigned char led_seg_1; */
void serial(void)
{;
}
void key(void)
{
// key_led();
key_logic();
}
/********************************************************************************************/
/*
void key_logic(void)
{
if (key_preset_flag == 1)
{
if (preset_buff == 0)
{
if (preset_3s_buff == 0)
{
preset_3s_buff = 3;
key_preset_flag = 0;
led_disp.led_3.byte = seg_led_table[10];
led_disp.led_4.byte = seg_led_table[10];
}
}
}
if (key_buff_2 == old_key) /* key_buff_2 define: 00 41 52 63 */
/* {
if ((program_buff == SPEEDY)||(program_buff == FASTEST)||(program_buff == TUBE_DRY))
return;
if (key_buff_2 == KEY2)
{
if (key2_2s_buff == 0) // process selection;
{
key2_2s_buff = 2;
if (key2_switch_flag == 0)
{
key2_switch_flag = 1;
if (process_key_falg == 1)
{
process_key_falg = 0;
function_key_falg = 1;
}
else if (function_key_falg == 1)
{
process_key_falg = 1;
function_key_falg = 0;
}
return;
}
}
}
else if (key_buff_2 == KEY3)
{
if (key3_1s5_buff == 0) // process selection;
{
key_preset_cont();
}
}
else if (key_buff_2 == KEY4)
{
if (status_buff == RUN)
{
if ((run_soak_flag == 1)||(run_wash_flag)||(run_rinse_flag));
inlet(1, 5, water_level_buff);
return;
}
}
// check if need 'return'
}
else // need use running key and setting key save buffer
{
if (key_buff_2 == 0)
key_release = 1;
else
{
key_release = 0;
key2_2s_buff = 2;
key2_switch_flag = 0;
key3_1s5_buff = 3;
key_buff_3 = key_buff_2;
}
old_key = key_buff_2;
if (key_release == 1)
{
if (status_buff == PRESET)
{
if (key_buff_3 == KEY3)
{
preset_confirm_flag = 1;
preset_5s_buff = 5;
preset_flash_flag = 0;
led_disp.led_3.byte = led_flash_buff3;
led_disp.led_4.byte = led_flash_buff4;
}
if (key_buff_3 == KEY6)
key_power();
return;
}
if (status_buff == STAND_BY) */ /* if running, need as key judge during specific process; */
/* {
switch (key_buff_3)
{
case KEY1:
if (t3_key_flag == 1)
{
status_buff = TEST;
test3_flag = 1;
t3_key_flag = 1;
}
break;
// case KEY3:
// key_preset_flag = 1;
// key_preset();
// break;
case KEY6:
key_power();
break;
case KEY1_6:
t3_key_flag = 1;
break;
case KEY2_3:
if (t5_3key_flag == 1)
{
status_buff = TEST;
test5_flag = 1;
} // it's one bit of "test_buff";
else
t5_2key_flag = 1;
break;
case KEY2_5:
if (t4_3key_flag == 1)
{
status_buff = TEST;
test4_flag = 1;
}
else
t4_2key_flag = 1;
break;
case KEY3_4:
if (t2_3key_flag == 1)
{
status_buff = TEST;
test2_flag = 1;
}
else
t2_2key_flag = 1;
break;
case KEY4_5:
if (t1_3key_flag == 1)
{
status_buff = TEST;
test1_flag = 1;
test_1_mode = C1;
test_1_start_flag =1;
}
else
t1_2key_flag = 1;
break;
case KEY2_3_6:
if (t5_2key_flag == 1)
{
t5_2key_flag = 0;
t5_3key_flag = 1;
}
break;
case KEY2_5_6:
if (t4_2key_flag == 1)
{
t4_2key_flag = 0;
t4_3key_flag = 1;
}
break;
case KEY3_4_6:
if (t2_2key_flag == 1)
{
t2_2key_flag = 0;
t2_3key_flag = 1;
}
break;
case KEY4_5_6:
if (t1_2key_flag == 1)
{
t1_2key_flag = 0;
t1_3key_flag = 1;
}
break;
};
}
else if ((status_buff != TEST)&&(status_buff != STAND_BY)) /* if running, need as key judge during specific process; */
/* {
switch (key_buff_3)
{
case KEY1:
key_start();
break;
case KEY2:
if (key2_switch_flag == 1)
{
key2_switch_flag = 0;
return;
}
key_pro_fun();
break;
case KEY3:
key_preset_flag = 1;
key_preset();
break;
case KEY4:
key_water_flag = 1;
key_water();
break;
case KEY5:
key_program();
break;
case KEY6:
key_power();
break;
};
}
else if (status_buff == TEST)
{
switch (test_buff)
{
case TEST1:
if (key_buff_3 == KEY4) // if key_water;
{
test_1_mode ++;
if (test_1_mode == 4)
test_1_mode = 1;
t_mode_switch_flag = 1;
}
if (key_buff_3 == KEY1)
key_start();
if (key_buff_3 == KEY3)
key_preset();
if (key_buff_3 == KEY5)
key_program();
break;
case TEST2:
if (key_buff_3 == KEY4) // if key_water;
{
test_inlet_flag = 1;
if (key_release == 1)
key_release = 0;
}
if (key_buff_3 == KEY5) // if key_water;
{
test_softner_flag = 1;
if (key_release == 1)
key_release = 0;
}
if (key_buff_3 == KEY3) // if key_water;
{
test2_spin_flag = 1;
// if (key_release == 1)
// key_release = 0;
}
if (key_buff_3 == KEY6)
key_power();
break;
case TEST3:
if (key_buff_3 == KEY6)
key_power();
break;
case TEST4:
if (key_buff_3 == KEY6)
key_power();
break;
case TEST5:
if (key_buff_3 == KEY1)
key_start();
if (key_buff_3 == KEY6)
key_power();
break;
};
}
}
else
return;
}
return;
}
*/
void key_power(void)
{
key_buzz_flag = 1;
if (status_buff == STAND_BY)
{
//buzz_power();
status_buff = INITIAL;
status_5m_buff = 5; // need confirm any key pressed ???
default_flag = 1;
run_1s_buff = 0;
return;
}
else if (status_buff != STAND_BY)
{
status_buff = STAND_BY;
run_1s_buff = 0;
init();
}
return;
}
/********************************************************************************************/
void key_start(void)
{
key_buzz_flag = 1;
if ((status_buff == INITIAL)||(status_buff == STOP))
{
if (key_preset_flag == 0)
{
status_buff = RUN;
run_1s_buff = 0;
process_key_falg = 1;
return;
}
else if (key_preset_flag == 1)
{
status_buff = PRESET;
run_1s_buff = 0;
preset_flash_flag = 1;
save_led_buff_0 = led_disp.led_0.byte;
save_led_buff_1 = led_disp.led_1.byte;
save_led_buff_2 = led_disp.led_2.byte;
return;
}
}
else if ((status_buff == RUN)||(status_buff == TEST))
{
status_buff = STOP;
run_1s_buff = 0;
stream_buff = STREAM_STOP;
mot_cycle_buff &= MOT_STOP;
output_buff &= (~CW);
output_buff &= (~CCW);
}
else
return;
}
void key_program(void)
{
if (process_buff == SWRS) /* while choose soak, wash, rinse, spin; */
{
if (select_soak_flag != 1)
{
program_count = 0;
select_soak_flag = 1;
}
program_count ++;
if (program_count >= 5)
program_count = 0;
switch(program_count)
{
case 0:
program_buff = COMMON;
led_disp.led_0.byte = 0xfe;
break;
case 1:
program_buff = JEANS;
led_disp.led_0.byte = 0xf7;
break;
case 2:
program_buff = STANDARD;
led_disp.led_0.byte = 0xfe;
// flash_flag = 1;
break;
case 3:
program_buff = FIBER;
led_disp.led_0.byte = 0xfd;
break;
case 4:
program_buff = COTTON;
led_disp.led_0.byte = 0xfb;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -