首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助:KBI消抖

求助:KBI消抖

各位老大:
1 最近在使用QE128的KBI,没有发现它有硬件方面消抖的功能。
问一下大家都是怎么消抖的呢。
2 由于我的KBI一部分作为按键使用,一部分用来计多路脉冲。
如果采用在中断中用delay(20) //20ms的方法软件延时消抖的话,那如果在20ms消抖过程中,另一路脉冲到来怎么办,
而且我有5路的脉冲。
版主你好,我判断出了是哪个引脚产生的脉冲信号后,那在针对它进行延时去抖的过程中,其他引脚的脉冲来了怎么办呢,这样肯定导致脉冲丢失吧。
还是没明白什么意思。
我的程序流程是这样的:我是用的下降沿产生中断。
当引脚1产生KBI中断进入中断服务程序,查询到是该引脚产生的中断,此时延时20ms,再次判断引脚状态如果确实是按下的话,表明不是抖动。
我的问题是,当在引脚1的延时消抖在执行时,由于它一直占着中断服务程序,其他的引脚来脉冲时,将无法再进入中断程序,那岂不就丢脉冲了,这种情况应该怎么处理。
是不是存在这样的情况,引脚1产生中断,马上把KBI的中断标志位清除KBISC_KBACK = 1;这样当我做完引脚1的延时判断处理后,引脚2、引脚3等其他脉冲在引脚1延时消抖的时候产生的下降沿同样会再次导致进入中断呢。
感觉如果同时来了好几路脉冲的话,根本处理不过来啊。
fish1330 你好
中断服务程序提供信号标志,MAIN函数的查询肯定比较慢,我的MAIN要50多ms才会转一圈,这样如果多个脉冲信号标志同时来的话,Main根本来不及呀。
你的消抖是不是这样做:MAIN查询到脉冲的信号标志后,延时若干毫秒,再读一次脉冲状态,如果还是高电平表示脉冲确实产生,否则视作抖动。这样像你说的那么多路的信号,那得延时多少时间呀。
能不能提供一个测试例程出来参考一下呢,非常感谢!
返回列表