主要思路:
1. 按下按键 启动赋值计时
2. 判断时间 是否在想要时间内
(1)如果 没有达到时间就松手 直接判定为 短按
(2) 一直没有松手,时间达到后时间要求,直接判定为长按
3.注意要清除标志物,否则会一直判断时间要求
代码如下 :
// ========================================================
if(key_low ==5 ) // 检测下降沿
{
Tm_u1 = Tm1_ms; //两个 互补滴答 Tm1_ms = 1ms++
bibi_key_u1 =1; //标志位初始 =0;
}
if(bibi_key_u1 ==1) //标志物 启动
{
if((Tm1_ms -Tm_u1) < 1000) // 时间计算换算
{
if(key_up ==5 ) //检测上升沿
{
Jie_mian++; //执行 短按功能
bibi_key_u1 =0; // 清零标志位(作用:不再运行扫描代码)
}
}
else //不到达规定时间否则 直接执行 有效操作
{
Jie_mian = 2;
bibi_key_u1 =0; // 清零标志位(作用:不再运行扫描代码)
}
}
if(Jie_mian ==3) Jie_mian = 0; // 0 - 2 之间循环
}
//=================================================================