打印

有那位大侠能说说中断扫描键盘和主程序扫描键盘的优缺点

[复制链接]
20799|99
手机看帖
扫描二维码
随时随地手机跟帖
沙发
ayb_ice| | 2008-5-20 09:54 | 只看该作者

有经验的一般不在中断中扫键盘

使用特权

评论回复
板凳
computer00| | 2008-5-20 10:08 | 只看该作者

不会吧...我喜欢在中断中扫描键盘、去抖啊

如果有数码管,也一并放入。开个几ms的定时器,中断就去扫描键盘、数码管,还可以做个系统时间节拍。
然后就可以不用去管它们了。主程序可以安心的干自己的活。需要读取按键情况时,直接读键值就行了。

使用特权

评论回复
地板
mpuhome| | 2008-5-20 10:19 | 只看该作者

同意00

我也喜欢在中断里做

使用特权

评论回复
5
xwj| | 2008-5-20 10:21 | 只看该作者

是的,有经验的一般都在中断中扫键盘

但一定要在中断外处理键盘事件

使用特权

评论回复
6
gyt| | 2008-5-20 10:23 | 只看该作者

赞成3楼

使用特权

评论回复
7
gyt| | 2008-5-20 10:23 | 只看该作者

也赞成5楼

使用特权

评论回复
8
jack.king|  楼主 | 2008-5-20 10:31 | 只看该作者

我开始的程序没有在中断里面处理

我考试的程序没有在中断里面处理,发现在读写片内EEPROM的时候(由于等带CPU)有点闪烁的感觉,我就觉得是不是我那里搞错了,但是整体的效果又可以用,只是在读写EEPROM有点不通!后来想想是不是键盘扫描的次数太多了浪费了时间
对了各位位了,我现在又来改变思维,呵呵!今天有点进步!

使用特权

评论回复
9
machunshui| | 2008-5-20 11:39 | 只看该作者

定时中断里面计数,置一个键盘处理的事件标志

定时中断里面计数,到时间置一个键盘处理的事件标志,

有标志,主循环就做键盘扫描,作完毕,事件标志归0,再次启动计数

使用特权

评论回复
10
foxfox| | 2008-5-20 11:39 | 只看该作者

处理好了,放哪都一样

使用特权

评论回复
11
ayb_ice| | 2008-5-20 11:50 | 只看该作者

是中断中扫键不好

这样会对其它中断产生影响,增加其它中断响应时间,特别是不能中断嵌套的MCU。
我是从不在中断中扫键。

使用特权

评论回复
12
machunshui| | 2008-5-20 11:51 | 只看该作者

关键是消抖,不能傻等

关键是消抖,不能傻等。
键盘扫描,没几条指令.

使用特权

评论回复
13
cnchip| | 2008-5-20 12:07 | 只看该作者

我也一直很烦主程序里不停的循环,感觉那样很烦!

以前写汇编时,主程序的最后一条是SJMP $ (没记错吧?哈)
其它统统想法用中断,调好了再也不用管了!

使用特权

评论回复
14
cnchip| | 2008-5-20 12:11 | 只看该作者

所以还是用RTOS的好,延时不用傻等!

刚刚的一个小小项目的小小功能,仅仅为了练一练,样机我用了RTX-51,后来考虑到成本,没办法,改为Tiny。

以后争取全用OS,uC/OS-II最好了

使用特权

评论回复
15
cnchip| | 2008-5-20 12:26 | 只看该作者

还有啊,键盘可以不用传统的“扫”的办法

以前用的了,近来很少用,记得不太清了:
以8bits端口的4×4为例,可以先向端口写0xF0,读一下;
再写0x0F,再读一下;

根据两次读的结果,就可以判断是哪个键了!


还有一种三键的键盘,就是每个键有三个触点,读一次就可以直接判断是哪个键,可构成按键的总个数符合数学上的“组合”公式。

上述两种方法都容易实现,且结构上比扫描要清晰的多!

或者更另类的方法是用一个AD口,就可以搞出很多个了,带AD的现在已经不稀罕了,最节省端口了!见过西门子VDO的汽车音响就是这么干的!

使用特权

评论回复
16
jack.king|  楼主 | 2008-5-20 13:43 | 只看该作者

我发现这个键盘是3个独立键盘有24按键

使用特权

评论回复
17
machunshui| | 2008-5-20 13:46 | 只看该作者

不用OS,,延时不傻等,也不是很麻烦。

不用OS,延时不傻等,也不是很麻烦。

使用特权

评论回复
18
九把刀| | 2008-5-20 15:25 | 只看该作者

最好的方式, 当然是中断中扫, 主循环中处理

使用特权

评论回复
19
ayb_ice| | 2008-5-20 19:23 | 只看该作者

看来我有点寡不敌众

不过我还是**我的观点

使用特权

评论回复
20
胖子LEE| | 2008-5-20 19:54 | 只看该作者

应该在中断里面扫描会比较好

只是具体的处理应该搬到外面来做.

使用特权

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

本版积分规则

488

主题

2158

帖子

1

粉丝