/*== ========================/*功能:单击 */ =================================*/
void key_det(void)
{
if(key_1 == 0) //按下
{
if(++key_cnt>6) //主循环10ms进来一次 作用:按下消抖
{
if(key_flag == 0) //防止重复进入
{
key_flag = 1;
led_1 = ~led_1; //单击事件
}
}
}
else //松开
{
if(key_cnt >= 6) key_cnt = 6;
if(key_cnt != 0) --key_cnt;//防止松开抖动
if(key_cnt == 0) //防止重复进入
{
if(key_flag)
{
key_flag = 0;
}
}
}
}
/*=============================/* 单击 双击 */================================*/
void key_det_2(void)
{
if(click_flag) //单击
{
click_flag = 0;
led_1 = ~led_1;
}
if(double_click_flag) //双击
{
double_click_flag = 0;
led_2 = ~led_2;
}
if(key_1 == 0) //按下
{
if(++key_cnt_2 > 6)//主循环10ms进来一次 作用:按下消抖
{
key_double_click_cnt = 0;
if(key_flag_2 == 0) //防止重复进入
{
key_flag_2 = 1;
}
else if(key_flag_2_1 == 1)
{
key_flag_2_1 = 0;
double_click_flag = 1; //300ms以内再次按下就判断为 双击事件
key_double_flag = 1; //该标志位置1 为了不触发单击
key_flag_2 = 0;
}
}
}
else
{
if(key