Eric-Zhao 发表于 2014-11-7 20:24:34

第十一节:同一个按键短按与长按的区别触发的短按触发条件判断问题

if(key_sr2==1)//IO 是高电平,说明两个按键没有全部被按下,这时要及时清零一些标志位
{
ucKeyLock2=0; //按键自锁标志清零
uiKeyTimeCnt2=0;//按键去抖动延时计数器清零,此行非常巧妙,是我实战中摸索出
来的。
if(ucShortTouchFlag2==1) //短按触发标志
{
ucShortTouchFlag2=0;
ucKeySec=3; //触发 2 号键的短按
}

鸿哥,为啥将短按if(ucShortTouchFlag2==1)的条件判断嵌套的到if(key_sr2==1)里面,有点看的不懂,请帮忙解释下,谢谢。

jianhong_wu 发表于 2014-11-7 21:21:49

放在if(key_sr2==1)里面是因为松手的时候key_sr2==1,这里的短按是检测你松手的时候的,也就是检测上升沿。而我前面一些章节的按键检测的是下降沿。
页: [1]
查看完整版本: 第十一节:同一个按键短按与长按的区别触发的短按触发条件判断问题