一、首先来回顾一下按键延时消抖
按键由于是机械结构按下的时候难免产生抖动,一般抖动会在按下的时候与松开的时候产生抖动时间大概是10ms
于是针对按键抖动就有叻延时消抖的一种简单的解决方法:
方法一: 按下按键损耗的时间取决于按下按键到松开的时间,至少10ms按下按键后CPU不再执行其他指令,直到按键松开应用能力弱
方法二: 按下按键损耗的时间大约10ms,松开按键时损耗10ms,累计20ms按下按键期间可以进行其他操作,应用能力较强
可以看到延时消抖最大的弊端就是有延时,至少要消耗10ms~20ms的时间对于我们来说10ms或许很短,但对于一些高性能的MCU来说那就是能执行几万条指令的時间
按键消抖一般分为4步:
3、再次判断按键是否按下
二、定时器消抖原理 1、判断按键是否按下,
2、若检测到有按键按下则开启定时器,開启定时中断定时时间为10ms 左右,使得按键按下10ms后进入定时中断进入中断的时候按键抖动时间已过
3、在定时器中断中再次判断按键是否按下
4、关闭定时器,等待按键松开