在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3131|回复: 5

键盘控制状态机问题

[复制链接]
发表于 2008-6-9 11:31:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
键盘控制状态机问题我用键盘控制状态机转移,键盘的频率要比状态机低得多。我想按一下键状态机转移一次,再按这个键再转移一次,但是因为频率差距大,我按一下键,状态机转移了无数次。我设置了一个标志位来标志没有键按下,这样只有抬起按键后再按下才转移,一直按下按键也值转移一次,可是问题来了,只要加了这个标志位信号,状态机就不转移了,没有反应了,请大家帮助,给个比较好的解决办法。谢谢
发表于 2008-6-9 13:04:14 | 显示全部楼层
你可以检测键按下与键释放两个事件来驱动状态机
发表于 2008-6-10 18:08:13 | 显示全部楼层
不应该是按下键状态机转移一次,因为按键有长按,短按的区别。
应该设计一个状态机,当检测到有键按下,开始定时扫描键值。当检测到所有键释放了,停止扫描键值。
将键值变化报告给软件,由软件决定如何处理。
发表于 2008-6-10 21:05:07 | 显示全部楼层
学到了不少!
发表于 2008-6-10 21:11:09 | 显示全部楼层
值得研究一下
发表于 2008-6-15 13:06:07 | 显示全部楼层
你可以这么做:

利用一个移位寄存器

假如你要排除抖动,需要按键按下4个周期以上才认为有效信号到来

那么利用一个5bits的移位寄存器
假设按下为1,没有按下为逻辑0
每周期采样按键打入移位寄存器
然后判断移位寄存器的状态为:01111那么可以判断有效按键到来
(常按的话移位寄存器的值为11111)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 21:11 , Processed in 0.019489 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表