OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2835|回复: 2

按键检测,状态机方法提个问

[复制链接]

42

主题

141

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
342
金钱
342
注册时间
2015-5-26
在线时间
49 小时
发表于 2016-2-2 21:01:43 | 显示全部楼层 |阅读模式
5金钱
最近学习了一下状态机检测按键,不知道是不是我理解有误。如果是利用状态机消抖的话。相当于多次采样判断(定时器扫描),但是由于按键按下的时候产生的抖动是随机的,有可能三次采样检测到的都是高电平,或者三次采样得到的都是低电平或者是高低电平的组合。。。。那这种方法的可行性在哪里?麻烦会的朋友说一下。谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2014-6-27
在线时间
981 小时
发表于 2016-2-3 09:29:40 | 显示全部楼层
首先你扫描的周期不要太长,比如5MS扫描一次,其次,如果有如此一般的抖动,也是硬件真实的情况,的确是抖动,在如此周期又如此一般抖动,也是真实的抖动。一旦你确定按下或者释放,在如此扫描周期完全是可以扑捉到可用的电平,如此一般还不行,硬件真的不能用了,可以用的硬件,如此就可行。
回复

使用道具 举报

2

主题

391

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1957
金钱
1957
注册时间
2014-8-8
在线时间
307 小时
发表于 2016-2-3 16:25:54 | 显示全部楼层
可行性分析:
首先无论抖动是怎样,你输入的要不就是高电平要不就是低电平(如果是直流的话),那么你需要确定的是高电平/低电平持续多长时间才为有效。
如果你认为持续2ms是有效,没那么你的消除抖动时间可以就是2ms(但是电平采集可能每100us采集一次连续20次都为同一个电平才认为有效)。
同理,一般按键我们认为200ms持续电平有效,那么你就连续采集每10ms一次,连续20次即为有效。
最后只简单消抖40ms或则几次电平的方法在按键的时候是有效的,你说的无效的情况其实是存在干扰了,你要做的是消除干扰。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 08:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表