打印

键盘去抖 去抖时单片机可以做其他事???

[复制链接]
楼主: nicker88
手机看帖
扫描二维码
随时随地手机跟帖
21
NE5532| | 2010-9-25 21:36 | 只看该作者 回帖奖励 |倒序浏览
首先要根据按键的特性确定抖动时间,其次根据是否有其他需要同时服务的任务来确定是硬件去抖、软件硬延时去抖还是状态机去抖。不会根据实际需要选择最优方案的,均是不合格的工程师,就算他软件去抖写得再好也是枉然。
如果这样回答这道题,还被扣分的话,这题肯定是人力资源部出的!!

使用特权

评论回复
22
古道热肠| | 2010-9-25 21:52 | 只看该作者
是要根据功能来,功能简单的让单片机空耗也行,功能复杂的,那就不能死等。

使用特权

评论回复
23
highgear| | 2010-9-25 23:28 | 只看该作者
呵呵, 楼上说的都对。但是....

对于一道笔试题以及一个初学者, 楼上这样或那样的方法基本上是对牛弹琴。最好的方法就是最简单最直接的方法: 软件延时避开抖动。

使用特权

评论回复
24
dog_xin| | 2010-9-28 09:37 | 只看该作者
死等,浪费效率

使用特权

评论回复
25
dog_xin| | 2010-9-28 09:40 | 只看该作者
用中断最理想,定时判断键值,主程序处理去抖

使用特权

评论回复
26
aceice| | 2010-9-28 09:43 | 只看该作者
用熟定时器,什么任务都用定时器中断来置标志位触发,主程序判断标志位来执行。
对于绝大多数程序的安排都很简单

使用特权

评论回复
27
fzu_csc| | 2010-9-28 10:17 | 只看该作者
ucos2, 挂起,等待延时标记,如此实时性比较好。

使用特权

评论回复
28
yulri| | 2010-9-28 19:41 | 只看该作者
我是做应用开发的,一笑而过!

使用特权

评论回复
29
yulri| | 2010-9-28 19:45 | 只看该作者
怎么没人贴出代码呢?说说原理有啥用,耍嘴皮子的事!:funk:

使用特权

评论回复
30
NE5532| | 2010-9-29 19:45 | 只看该作者
怎么没人贴出代码呢?说说原理有啥用,耍嘴皮子的事!:funk:
yulri 发表于 2010-9-28 19:45


真的高手,在单位上肯定都是头羊,上班都累到想吐了,下班还来写代码,现实么?不讲原理讲什么?

使用特权

评论回复
31
aihe| | 2010-9-29 21:52 | 只看该作者
楼主往前翻翻就有现成代码
有思想就有代码
没思想什么代码给你也枉然

使用特权

评论回复
32
SLEET1986| | 2010-9-30 08:29 | 只看该作者
真的高手,在单位上肯定都是头羊,上班都累到想吐了,下班还来写代码,现实么?不讲原理讲什么?
NE5532 发表于 2010-9-29 19:45
;P

使用特权

评论回复
33
roy13543826592| | 2010-9-30 08:49 | 只看该作者
可以调用其他功能子程序代替延时,例如调用显示子程序啊,键盘扫描等等的实时性较高的子程序

使用特权

评论回复
34
Galway-Zhang| | 2010-9-30 12:55 | 只看该作者
;P
SLEET1986 发表于 2010-9-30 08:29
\


小小的幸福.攒积起来.就是一大大的幸福. ..

;P

每天一点点,每月一大点。。

使用特权

评论回复
35
fushaobing| | 2010-9-30 16:49 | 只看该作者
每16Hz扫描一次键盘,即使不去抖,又有何妨?

使用特权

评论回复
36
jtboy105| | 2010-9-30 17:53 | 只看该作者
其实,个人认为,你们理解错了出题人的意图。
针对按键去抖,大部分都是采用延时的方法,其实更好的方法是,连续采样的方式,

读取当前状态,
与上一状态比较,
否,则更新上一状态为当前状态,并重置Debounce次数。
相同,则将Debounce次数减1,若Debounce为0,即采样处于稳定状态。

使用特权

评论回复
37
new1988| | 2010-10-2 00:08 | 只看该作者
简单是硬到底,如果一个51的单片机就做两三个独立按键的扫描,你不随我死等!搞的那么复杂,浪费时间,浪费脑细胞!当然,任务多了就另当别论!

使用特权

评论回复
38
lirunze| | 2010-10-2 09:07 | 只看该作者
看来回答的人已经很多了,我就不罗嗦了啊

使用特权

评论回复
39
zdhlixiang2006| | 2010-10-4 16:45 | 只看该作者
7楼说的很好,其实就是考你是否有多任务意识,因为通常我们都是用软件延时来避免抖动,但是这种方法在一些实时性高的系统里是没法用的

使用特权

评论回复
40
天雨粟| | 2010-10-6 20:40 | 只看该作者
考官考的是:按键为什么要去抖?
参考答案:按键去抖的意义在于防止一次按键多次响应。

在明白了这个道理的前提下,去抖时单片机能否做其它事,就可以switch——分情况具体讨论了。

使用特权

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

本版积分规则