消抖延时程序的浅解
既然干扰是随机的,那即使你延时的时间有多长,都不能避免
接受错误的干扰信号,我看很多介绍按键检测都是先判断一次然后过
50MS延时再判断一次,对于大多控制系统来说,可能出错的机率
比较小,但不可避免第一次输入的是真实信号,第二次可能是干扰
信号。对于编码器等脉冲输入信号,一方面要考虑延时的时间对
编码器采集数据速度的影响,一方面要考虑可能的输入的误信号,
实际 编码器消除抖动信号不完全在延时时间的长短,取决与二次输入
的都是真实的输入信号,编码器采集数据的速度也并不完全取决与
程序,只要程序正确,使用速度快的单片机就可以测量编码器更多
的脉冲,本来工作频率低的单片机每秒测量500个脉冲,高十倍
就可以测量5000个。所以延时程序我现在先给寄存器赋值,延时后
寄存器加或减再比较寄存器的值再检测,等寄存器赋值运算到设定的
N次,判断结束,确认是正确的输入信号,如果N次中有一次结果
错误,则重新检测。
|