延时时间T 太短( T < T’) ,滤波不完整,脉冲宽度大于T 的干扰信号仍然会造成电路的误动作; 延时时间T 太长( T>>T’) ,会造成资源的浪费,降低电路的工作效率。
这里以某型号的扭子开关输入信号为例来介绍如何确定延时时间T。由于扭子开关的机械触点存在弹性作用,当拨动开关时,都不可避免地要在触点闭合及断开的瞬间产生一连串的抖动。为了能够更准确地估测拨动开关时产生的干扰脉冲宽度T',可以用示波器对开关信号进行多次测量,经测量发现这种扭子开关信号的抖动时间不会超过1. 5ms。图1 为没有经过滤波处理的开关信号波形。
图1 中,横坐标表示时间,每格代表50 μs,纵坐标表示电压,每格表示1 V。从图中可以明显看出,在开关信号达到稳定状态之前,有一连串的抖动,抖动时间不到1. 5 ms。这里根据实际情况,确定延时时间T = 2 ms。
1. 2 延时滤波程序设计
延时滤波程序采用一个计数器来实现,计数器的模值N 取决于延时时间T 和采样时钟CLK 的周期TCLK。若计数器的初始值为0 时,则N = T /TCLK -1。图2 为编写延时滤波程序的流程图。