1、按键为什么不能用延时?
很多人单独用按键测试程序的时候,发现delay10ms很好用。没有什么bug,可是一旦把各个模块组合在一起使用的时候,就会发现数码管怎么在闪烁??led怎么亮度不均匀??我按键怎么不够灵敏了??这其实就是延时导致的程序不能按时进行结果。
其实最主要的原因还有延时10ms对整个代码伤害很大。10ms足以让我们的while多跑好多次了,我们有必要避免CPU的浪费。
2、我们延时是为了什么??
是为了防止抖动。
什么是抖动??简单来说就是按键电平在一瞬间产生的跳变。时间很短但是却能够触发我们的按键判断,我们人的手速再快,也很难在10ms内的按下释放。所以只要按键电平的变化持续了10ms就可以判断为是人为按下了。
延时为什么可以消抖?
这个原理很简单,当我们按键电平第一次变化的时候。就进入了按键判断,我们等待10ms检测又检测到了按键还是刚刚那个样子。那么就认为不是抖动了。