打印

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

[复制链接]
楼主: jack.king
手机看帖
扫描二维码
随时随地手机跟帖
21
IceAge| | 2008-5-20 20:37 | 只看该作者 回帖奖励 |倒序浏览

又是这种问题 ......

使用特权

评论回复
22
zdy_999| | 2008-5-20 21:50 | 只看该作者

我最喜欢在程序里放按键扫描

其实我敢肯定你们也一定是把扫描放在程序里

使用特权

评论回复
23
ayb_ice| | 2008-5-21 08:51 | 只看该作者

很多MCU都不能(直接)中断嵌套

如果在中断中做扫描键盘和其它太多的事情,肯定影响其它中断的响应时间,而人对键盘反应其实很迟钝,反应在几十MS以上,放在主循环是不会有任何问题。

针对具体应用,某些情况是主程序初始化后就是不停的进入IDLE状态,所有工作都是在定时中断是完成的,这种情况也可以改成在主循环中完成完全相等的工作。

使用特权

评论回复
24
jack.king|  楼主 | 2008-5-21 09:31 | 只看该作者

若做的事情太多了呢?若键盘数量比较多,并且要读写EEPROM

使用特权

评论回复
25
dld2| | 2008-5-21 09:37 | 只看该作者

主要区别

若主程序中某项任务耗时比较长,中断中扫描不会丢失按键信息。

使用特权

评论回复
26
machunshui| | 2008-5-21 10:17 | 只看该作者

支持一下ayb_ice

支持一下ayb_ice。

使用特权

评论回复
27
machunshui| | 2008-5-21 10:23 | 只看该作者

支持一下ayb_ice

“若键盘数量比较多,并且要读写EEPROM”

若键盘数量比较多,就更加应该放到主循环当中做,老占着中断不放,不是好事。

读EEPROM,一般不怎么耗时,
写EEPROM,采取中断方式,不能傻等。

一句话,程序当中,不要为一件事长时间傻等。

使用特权

评论回复
28
machunshui| | 2008-5-21 10:26 | 只看该作者

不会为一件事长时间傻等,是OS的一个巨大的优点

不会为一件事长时间傻等,是OS的一个巨大的优点

使用特权

评论回复
29
ayb_ice| | 2008-5-21 10:36 | 只看该作者

谢谢

终于有人支持了

使用特权

评论回复
30
用户ID| | 2008-5-21 10:46 | 只看该作者

就这种帖子大家顶得最来劲了

使用特权

评论回复
31
machunshui| | 2008-5-21 10:59 | 只看该作者

通用的,都能插的上嘴

通用的,都能插的上嘴

使用特权

评论回复
32
jack.king|  楼主 | 2008-5-21 11:29 | 只看该作者

ls怎么来中断的方式来写EEPROM我不知道怎么搞

使用特权

评论回复
33
machunshui| | 2008-5-21 11:47 | 只看该作者

写eep本身,就几条指令

写eep本身,就几条指令,不怎么耗时,
但是为了确信写完成,启动下一次写,需要等待可能若干ms。

对于确信写完成,简单的就是延时查询傻等,这样就比较耗时。

如果是芯片内部的eep,写完成,会有中断发生,置启动写标志,
主循环里,检测到标志,启动下一次写。

或者在主循环里查询,写完成中断标标志,启动下一次写

对于外部的eep,启用定时器延时,时间到设置一个写标志,
主循环里,检测到标志,启动下一次写。

这样处理的话,就不会有傻等的情况发生

使用特权

评论回复
34
twz8858877| | 2008-5-21 13:54 | 只看该作者

支持一下ayb_ice

我喜欢放在主程序扫键盘,其它任务都用中断,置标志位,主程序处理,这样假设所有任务都发生主程序处理时间也不会太长(不到100ms,对我做过的来说),而人对键盘的反应比较迟钝

使用特权

评论回复
35
machunshui| | 2008-5-21 14:06 | 只看该作者

和twz8858877思路完全一样

和twz8858877思路完全一样。

而且,
在一个循环的,所有任务都发生的可能性,一般情况下非常小.

使用特权

评论回复
36
ayb_ice| | 2008-5-21 14:47 | 只看该作者

随便说说

即可所有任务同时发生也可以面对,因为不是所有任务必须及时处理,可以先处理最紧急的任务。

使用特权

评论回复
37
5880527| | 2008-5-21 17:47 | 只看该作者

感觉定时器里处理比较踏实

使用特权

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

去看看hotpower的零耗时键盘处理吧

放定时中断里绝对是很好的方法

使用特权

评论回复
39
hotpower| | 2008-5-22 02:36 | 只看该作者

俺也做过主程序扫描键盘的~~~不过是中断也同时扫描

因为有个程序每31.25us中断一次,每次最少18us,平均25uS,最大30uS~~~

还要跑很多程序,特别还要检测频率,动态测试IO的好坏,芯片是否被振落,LED刷新等~~~

使用特权

评论回复
40
ayb_ice| | 2008-5-22 09:20 | 只看该作者

主程序一样可以零耗时啊。

使用特权

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

本版积分规则