注册 登录
编程论坛 操作系统内核开发

《自已动手写操作系统》第七章键盘中断的理解疑问?

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