打印

键盘去抖问题请教,谢谢!

[复制链接]
2674|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
renrongwen|  楼主 | 2007-7-10 10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(1)功能:16个按键,用于投票,在60s内16个人中的几个可能同时按下,可能没有规律地先后按下;
(2)方案:现在考虑用独立式键盘,但去抖好像不好做,若数量少可以用定时器,也考虑过专门用片单片机做每个键盘,但感觉很浪费;
请问大家有没有好的解决办法,谢谢!

相关帖子

沙发
ayb_ice| | 2007-7-10 11:01 | 只看该作者

说了半天,不知你有什么问题,要干什么...

使用特权

评论回复
板凳
gyt| | 2007-7-10 20:17 | 只看该作者

做这样的投票按键,可以不用做去抖

在有效的60内有接触就算数。

使用特权

评论回复
地板
心中的轨迹| | 2007-7-10 22:16 | 只看该作者

恩??

不懂

使用特权

评论回复
5
renrongwen|  楼主 | 2007-7-11 00:14 | 只看该作者

三楼说的有道理,准备投票期间直接检查I/O口的状态

如题!

使用特权

评论回复
6
conwh| | 2007-7-11 01:10 | 只看该作者

用定时器扫描,使用独立状态字的延时去抖

使用特权

评论回复
7
gyt| | 2007-7-11 06:11 | 只看该作者

3楼漏了一个“秒”字

应该是“60秒”。对不起:)

使用特权

评论回复
8
wtfshxkj| | 2007-7-11 07:24 | 只看该作者

消抖

   个人比较认同6楼的解决方案。

使用特权

评论回复
9
renrongwen|  楼主 | 2007-7-11 09:04 | 只看该作者

关于去抖

彼此独立可能同时被按到的按键若数目少可以用定时器去抖,但16个目前还没有想到好的办法对16个键同时去抖?

使用特权

评论回复
10
yewuyi| | 2007-7-11 09:11 | 只看该作者

搞笑,32个也能软件去抖……

LZ在想什么?

使用特权

评论回复
11
yewuyi| | 2007-7-11 09:37 | 只看该作者

提示一下:不要考虑同时去抖,考虑按位消抖即可

按位消抖的话不管多少个键都可以处理(当然,你的IO和MCU要能跑开才行)


那种说不需要消抖的话,俺只能当成一个美丽的谎言……

使用特权

评论回复
12
computer00| | 2007-7-11 09:51 | 只看该作者

我觉得用硬件触发器比较可靠,只要按下,触发器就触发

然后就一直保持。 如果是做抢打的话,还要去锁定其它触发器.


最后通过一个清除按钮将所有触发器复位.

使用特权

评论回复
13
xwj| | 2007-7-11 10:04 | 只看该作者

最简单的抢答器就是用74574加二极管,既可靠又不需写软件

哦HOHOHO

使用特权

评论回复
14
gezhi| | 2007-7-11 10:33 | 只看该作者

我来说两句,大家给看看

给每个键建立标志,读到对应位就置位对应标志。同时设置定时器比如说5ms中断,然后在中断里累加一个计数器。当任何一位标志被置位的时候记下当时的计数器值,只要时间间隔在计数器加2之后还能读到这个键那么就认为已经按下了!

使用特权

评论回复
15
huys02| | 2007-7-11 11:09 | 只看该作者

同意

同意14楼朋友

使用特权

评论回复
16
renrongwen|  楼主 | 2007-7-11 11:33 | 只看该作者

谢谢大家的回复

谢谢大家的回复,特别是14楼的16个键无先后顺序和抢答之说,只需时间到确认是否投票(按下)即可。还想问下5ms去抖时间是否有点短,大家一般去抖设置多长时间为宜?

使用特权

评论回复
17
182006| | 2007-7-11 19:37 | 只看该作者

3-5ms

60s16个人足够了……

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

88

帖子

1

粉丝