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

[复制链接]
4816|82
wangpe 发表于 2021-2-5 21:19 | 显示全部楼层
每隔1ms扫描一次键盘, 有键盘输入时7~15ms消抖.
zhanghqi 发表于 2021-2-5 21:21 | 显示全部楼层
我用示波器测试过,4ms足够了。采用的是普通的4脚直插按键,上拉10K电阻。而且多次测试,发现抖动全部发生在按键弹起的过程中,按下的过程,电平直接被拉低,没有出现毛刺现象,如果有的话,好像只有一次,概率极低。
langgq 发表于 2021-2-5 21:24 | 显示全部楼层

和你的键盘有关系,通常设10mS-30mS;
没必要设的特别灵敏;
wyjie 发表于 2021-2-5 21:26 | 显示全部楼层
键盘扫描个人感觉最好的方法就是定时中断扫描加状态机是比较好的方法,消除抖动我一般是用15ms,用起来比较不错。
yszong 发表于 2021-2-5 21:28 | 显示全部楼层
10MS行,我搞到300MS也不错,这个没什么定式的吧,试呗,感觉好就成了

不过时间太长了最好用系统啊,裸机程序还是别太长了,没效率了
dengdc 发表于 2021-2-5 21:30 | 显示全部楼层
弄个计数器,串入主循环不断扫描,每次扫描到有键按下计数器加一,加到100时处理一次!我就是这样弄的,效果还不错!
shimx 发表于 2021-2-5 21:31 | 显示全部楼层
和按钮材料结构相关,一般20mS.
jiaxw 发表于 2021-2-5 21:35 | 显示全部楼层
没有 刻意去消抖,1ms  扫描按键一次  ,有 能连续加到 50ms的  ,说明按键按下
spark周 发表于 2021-2-5 21:37 | 显示全部楼层

不用这么复杂,3句话解决问题
unsigned char  Trg;
unsigned char  cont;
void   Key_scan (void)
{ unsigned  char  Readdata=Px^0XFF;
   Trg=Readdata&(Readdata^cont);
   cont=Readdata;
}
wangpe 发表于 2021-2-5 21:39 | 显示全部楼层
我是至少10ms
heweibig 发表于 2021-2-5 21:41 | 显示全部楼层
我一般20ms
dengdc 发表于 2021-2-5 21:44 | 显示全部楼层
10MS左右就可以了
hanwe 发表于 2021-2-5 21:46 | 显示全部楼层
咱们论坛里有一个例程,不用延时就能消抖的,楼主找找看
yufe 发表于 2021-2-5 21:48 | 显示全部楼层
状态机实现的。可以参考下。 直接软件延时 太浪费时间资源了。
yufe 发表于 2021-2-5 21:51 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
llia 发表于 2021-2-5 21:53 | 显示全部楼层
这个做的挺好的啊,顶一下
langgq 发表于 2021-2-5 21:55 | 显示全部楼层
 楼主| wangzsa 发表于 2021-2-5 21:58 | 显示全部楼层
实际开发中一般是50ms-200ms,判断次数为2-5次,根据你的延时决定
lium 发表于 2021-2-5 22:08 | 显示全部楼层
10分钟吧
zhanglli 发表于 2021-2-5 22:11 | 显示全部楼层
按键处理我一般延时50ms,按下和松开都要有延时.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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