标题:《自已动手写操作系统》第七章键盘中断的理解疑问?
只看楼主
chichangjing
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-22
结帖率:0
已结贴  问题点数:20 回复次数:4 
《自已动手写操作系统》第七章键盘中断的理解疑问?
大家好!
最近看到第七章了,不知道论坛里有没有高人指点一下,我的想法是这样的:当一直按住按键,键盘一直处于中断,那么就会一直运行键盘中断程序keyboard_handler(),那是不是就不会运行keyboard_read()任务了。可为什么一直按住按键,还是运行keyboard_read()任务并且打印了字母。我哪里理解错误了
谢谢
搜索更多相关主题的帖子: 键盘 
2012-10-22 12:58
hgand
Rank: 2
等 级:论坛游民
帖 子:32
专家分:77
注 册:2012-10-17
得分:0 
你应该这样思考!不管是用中断方式还是用ADC查询方式读取键盘,是没有必要一直读取的,你手press ,release 最快也要个200-300ms, 所以在写程序时,可以选择个50-100ms读取一次的,而在50-100ms 之间可以执行多少代码?完全是有时间执行keyboard_read()了!你手机在播放音乐或者做其他事情的时候总不会因为你按住屏幕或者键盘就没有声音出来吧? 你可以找些键盘程序来看下就知道真正的原理了啊!何况还有多进程或线程呢!  
2012-10-23 13:59
chichangjing
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-22
得分:0 
回复 2楼 hgand
你好,我不知道你的这些知识是哪里来的,可以推荐几本书么,《一个操作系统的实现》并没有讲到。还有就是,我是一直按住键盘的,没有抬起按键的,难道不是一直处于中断么?键盘控制器是不是这么工作的
2012-10-24 10:02
hgand
Rank: 2
等 级:论坛游民
帖 子:32
专家分:77
注 册:2012-10-17
得分:20 
我现在用的theadx 系统(RTOS),我们用的是每个50MS读取ADC一次来获取按键值的,程序里有处理按键按下,长按,释放的操作,我不知道你看的那本书上怎么讲,可是我个人分析认为不可能一直处于中断里的,那如果你长按键盘程序一直处于中断里,那还怎么处理其他的事件啊?当然这只是我的一个愚见!或许有更好的按键处理方法,只是我没见到吧!
2012-10-24 11:57
on52088
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-3-2
得分:0 
之之之之之之之之之之
2013-03-02 16:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-383793-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052421 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved