按键消抖一般用多少时间啊?

[复制链接]
33916|56
bamboo03 发表于 2012-12-3 09:36 | 显示全部楼层
个人觉得:10-20ms
ldd250892 发表于 2012-12-3 11:09 | 显示全部楼层
按键消抖分软件消抖和硬件消抖,软件消抖的话一般5ms-10ms。
明月小厨 发表于 2012-12-3 11:49 | 显示全部楼层
硬件消抖的方法不可取,除非有特别的理由;
我处理按键读取是这样的;
上电时清零,初态,循回检测有键按下吗?
有健按下,读键值
下一个按键扫描周期.再判断有键否;否则状态归零;有则读键值;
键值相同吗?否则归零;是则计数,计数3个相同的值则按键有效;
扫描周期是5mS-10mS;一个稳定的按键过程,最快20mS判断出来,不稳定的则要看情况了.

如果一上电就有键按下,则无效,等按键释放,然后所有的状态归零;
明月小厨 发表于 2012-12-3 11:57 | 显示全部楼层
有键按下,判断为有效后.进入等待按键释放的状态.
如果有键长期按着,是否有效?
如按住1键不如,每250mS左右算一次有效按键,发键值"1";

如果二个键同时按下怎么处理?看你的扫描阵列允许否.
还有一个问题,按键有效时发键值,进入处理程序,还是等按键释放后才发键值进入相关的键值处理程序?
明月小厨 发表于 2012-12-3 12:03 | 显示全部楼层
扫描周期不要求精确;但太长则感觉按键反应不够灵敏;太快则有可能出现误判.
50mS判断有新的键,50mS判断按键释放,应该差不多了;
有的时候按键失效要报警,如上电后就有键按下,而且长按不起.此时可以提醒操作者,按键有异常.
明月小厨 发表于 2012-12-3 12:12 | 显示全部楼层
我搞的稍复杂了,但操作的结果感觉比较灵敏而且没有出现过失误;
如果有人和他自己过不去,1秒内按10次健,我不负责的.我也不知道他要的结果是什么?
20-50mS判断有键按下;
------------按键一直按着不算;
故意按住A键,再按B键,再释放A键,再释放B键的情况,......
非正常按键动作的处理结果我不负责.
50-100mS判断按键释放;
zh5202 发表于 2012-12-3 15:21 | 显示全部楼层
5—10ms就够了,不过硬件设计方便不是很好,或者保证更好的延时10—20ms也行。不要太大了,因为一两个100ms可能感觉不到,但是次数多了,系统也许就慢了(个人意见哈)。
hyminzhu 发表于 2012-12-3 15:22 | 显示全部楼层
20ms 比较常用吧
charmlink 发表于 2012-12-3 17:17 | 显示全部楼层
100ms太长.如果电脑键盘按100ms来消抖,每秒只能敲10个按键,不超过2-5个汉字,谁能忍受?
明月小厨 发表于 2012-12-3 17:43 | 显示全部楼层
我做的这个系统每秒按10次键是不允许的.自制的键盘弹力很足,能每秒按10次的人估计能破记录;
Lyc1992 发表于 2012-12-3 19:19 | 显示全部楼层
nqyijian 发表于 2012-12-4 15:27 | 显示全部楼层
goukunming 发表于 2013-11-6 15:09 | 显示全部楼层
一般也就20ms左右,具体要拿示波器看
yuri99q 发表于 2013-11-7 00:10 | 显示全部楼层
100ms之内,每隔20ms检测一次。判断几次为按键按下?
651927693 发表于 2013-11-7 00:58 来自手机 | 显示全部楼层
能不能不用延时消抖啊?这样不是会占用很多CPU 时间吗?如果不用硬件消抖,软件上还有别的解决方案吗?
waitxhurt 发表于 2013-11-7 11:40 | 显示全部楼层
我一直用50ms,一般不要延时,去干点别的事,反正总比呆在那里强
前功尽弃 发表于 2013-11-7 16:54 | 显示全部楼层
个人觉得10-20ms
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部