Table of Contents
Debouncing是数字电子学中的一种技术,用于确保在按下开关或按钮时只登记一个单一的信号. 机械开关经常因接触弹跳而产生多个信号,这可能会在数字系统中产生错误. 执行debouncing有助于提高输入读数的可靠性.
理解切换弹跳
当机械开关被按下或释放时,联系人不会干净地改变状态。相反,他们在和解前会快速地进行和中断接触几次。这种现象被称为弹跳,可以持续数微秒到毫秒,从而产生多个不想要的信号。
实用的调试技术
数种方法用于解跳数字输入,包括硬件和软件方法. 硬件解跳经常涉及RC滤波器或施密特触发器,而软件解跳则使用计时算法忽略快速状态变化.
执行软件调试
软件解调一般涉及定期取样输入,并只在指定时间内保持稳定时确认状态变化。这种方法灵活易用微控制器代码。
例如,如果按键输入每10毫秒读取一次,系统可以在注册更改前验证输入在新状态中至少保持50毫秒,这样可以减少弹跳造成的假触发.
计算减速时间
跳转时间取决于开关特性和系统要求,一个常见的方法是选择5至20毫秒的跳转间隔,计算涉及测量最大弹跳时间和增加安全比值.
例如,如果开关弹跳最多10毫秒,设置20毫秒的弹跳时间,确保可靠探测,而不会出现重大延误。
- 确定弹跳的最大持续时间
- 选择跳动间隔略长于跳动时间
- 在代码中实施定期抽样
- 在注册输入前确认稳定状态