键盘扫描的消抖一般要延时多少时间

[复制链接]
9718|56
zhanglli 发表于 2016-12-31 13:42 | 显示全部楼层
和你的键盘有关系,通常设10mS-30mS;
没必要设的特别灵敏;
guoyt 发表于 2016-12-31 13:42 | 显示全部楼层

键盘扫描个人感觉最好的方法就是定时中断扫描加状态机是比较好的方法,消除抖动我一般是用15ms,用起来比较不错。
llia 发表于 2016-12-31 13:43 | 显示全部楼层
10MS行,我搞到300MS也不错,这个没什么定式的吧,试呗,感觉好就成了

不过时间太长了最好用系统啊,裸机程序还是别太长了,没效率了
wangpe 发表于 2016-12-31 13:45 | 显示全部楼层
弄个计数器,串入主循环不断扫描,每次扫描到有键按下计数器加一,加到100时处理一次!我就是这样弄的,效果还不错!
langgq 发表于 2016-12-31 13:48 | 显示全部楼层
和按钮材料结构相关,一般20mS.
lium 发表于 2016-12-31 13:49 | 显示全部楼层
没有 刻意去消抖,1ms  扫描按键一次  ,有 能连续加到 50ms的  ,说明按键按下
hanwe 发表于 2016-12-31 13:54 | 显示全部楼层
不用这么复杂,3句话解决问题
unsigned char  Trg;
unsigned char  cont;
void   Key_scan (void)
{ unsigned  char  Readdata=Px^0XFF;
   Trg=Readdata&(Readdata^cont);
   cont=Readdata;
}
llia 发表于 2016-12-31 13:55 | 显示全部楼层
我是至少10ms
wangpe 发表于 2016-12-31 13:56 | 显示全部楼层
我一般20ms
zhuww 发表于 2016-12-31 13:59 | 显示全部楼层
10MS左右就可以了
lium 发表于 2016-12-31 14:00 | 显示全部楼层
咱们论坛里有一个例程,不用延时就能消抖的,楼主找找看
hanwe 发表于 2016-12-31 14:01 | 显示全部楼层
状态机实现的。可以参考下。 直接软件延时 太浪费时间资源了。
wangpe 发表于 2016-12-31 14:05 | 显示全部楼层
langgq 发表于 2016-12-31 14:06 | 显示全部楼层
实际开发中一般是50ms-200ms,判断次数为2-5次,根据你的延时决定
guoyt 发表于 2016-12-31 14:08 | 显示全部楼层
按键处理我一般延时50ms,按下和松开都要有延时.
llia 发表于 2016-12-31 16:30 | 显示全部楼层
如果是人工按键的话人按的频率会有多高啊。
 楼主| yufe 发表于 2016-12-31 16:31 | 显示全部楼层
结贴了,多谢大家讨论这么多哈,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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