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

[复制链接]
10985|44
NE5532 发表于 2010-9-25 21:36 | 显示全部楼层
首先要根据按键的特性确定抖动时间,其次根据是否有其他需要同时服务的任务来确定是硬件去抖、软件硬延时去抖还是状态机去抖。不会根据实际需要选择最优方案的,均是不合格的工程师,就算他软件去抖写得再好也是枉然。
如果这样回答这道题,还被扣分的话,这题肯定是人力资源部出的!!
古道热肠 发表于 2010-9-25 21:52 | 显示全部楼层
是要根据功能来,功能简单的让单片机空耗也行,功能复杂的,那就不能死等。
highgear 发表于 2010-9-25 23:28 | 显示全部楼层
呵呵, 楼上说的都对。但是....

对于一道笔试题以及一个初学者, 楼上这样或那样的方法基本上是对牛弹琴。最好的方法就是最简单最直接的方法: 软件延时避开抖动。
dog_xin 发表于 2010-9-28 09:37 | 显示全部楼层
死等,浪费效率
dog_xin 发表于 2010-9-28 09:40 | 显示全部楼层
用中断最理想,定时判断键值,主程序处理去抖
aceice 发表于 2010-9-28 09:43 | 显示全部楼层
用熟定时器,什么任务都用定时器中断来置标志位触发,主程序判断标志位来执行。
对于绝大多数程序的安排都很简单
fzu_csc 发表于 2010-9-28 10:17 | 显示全部楼层
ucos2, 挂起,等待延时标记,如此实时性比较好。
yulri 发表于 2010-9-28 19:41 | 显示全部楼层
我是做应用开发的,一笑而过!
yulri 发表于 2010-9-28 19:45 | 显示全部楼层
怎么没人贴出代码呢?说说原理有啥用,耍嘴皮子的事!:funk:
NE5532 发表于 2010-9-29 19:45 | 显示全部楼层
怎么没人贴出代码呢?说说原理有啥用,耍嘴皮子的事!:funk:
yulri 发表于 2010-9-28 19:45


真的高手,在单位上肯定都是头羊,上班都累到想吐了,下班还来写代码,现实么?不讲原理讲什么?
aihe 发表于 2010-9-29 21:52 | 显示全部楼层
楼主往前翻翻就有现成代码
有思想就有代码
没思想什么代码给你也枉然
SLEET1986 发表于 2010-9-30 08:29 | 显示全部楼层
真的高手,在单位上肯定都是头羊,上班都累到想吐了,下班还来写代码,现实么?不讲原理讲什么?
NE5532 发表于 2010-9-29 19:45
;P
roy13543826592 发表于 2010-9-30 08:49 | 显示全部楼层
可以调用其他功能子程序代替延时,例如调用显示子程序啊,键盘扫描等等的实时性较高的子程序
Galway-Zhang 发表于 2010-9-30 12:55 | 显示全部楼层
;P
SLEET1986 发表于 2010-9-30 08:29
\


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

;P

每天一点点,每月一大点。。
fushaobing 发表于 2010-9-30 16:49 | 显示全部楼层
每16Hz扫描一次键盘,即使不去抖,又有何妨?
jtboy105 发表于 2010-9-30 17:53 | 显示全部楼层
其实,个人认为,你们理解错了出题人的意图。
针对按键去抖,大部分都是采用延时的方法,其实更好的方法是,连续采样的方式,

读取当前状态,
与上一状态比较,
否,则更新上一状态为当前状态,并重置Debounce次数。
相同,则将Debounce次数减1,若Debounce为0,即采样处于稳定状态。
new1988 发表于 2010-10-2 00:08 | 显示全部楼层
简单是硬到底,如果一个51的单片机就做两三个独立按键的扫描,你不随我死等!搞的那么复杂,浪费时间,浪费脑细胞!当然,任务多了就另当别论!
lirunze 发表于 2010-10-2 09:07 | 显示全部楼层
看来回答的人已经很多了,我就不罗嗦了啊
zdhlixiang2006 发表于 2010-10-4 16:45 | 显示全部楼层
7楼说的很好,其实就是考你是否有多任务意识,因为通常我们都是用软件延时来避免抖动,但是这种方法在一些实时性高的系统里是没法用的
天雨粟 发表于 2010-10-6 20:40 | 显示全部楼层
考官考的是:按键为什么要去抖?
参考答案:按键去抖的意义在于防止一次按键多次响应。

在明白了这个道理的前提下,去抖时单片机能否做其它事,就可以switch——分情况具体讨论了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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