阅读:1227回复:5
用查询的方式做的键盘如何写ist函数
如题,我做的键盘是用查询的方式进行的,怎么写ist程序呢??如果用中断初始化interrpute这个我会,但是用查询的方式就不会了,有没有人做过啊
|
|
论坛版主
|
沙发#
发布于:2004-08-06 12:41
ist用来完成isr没做完的事,使用查询方式不存在ist的问题,直接扫描键盘,读出扫描码就完了
|
|
板凳#
发布于:2004-08-06 13:46
我的意思是说怎么写程序让它每隔一段时间来扫描键盘?用定时器??怎么做
|
|
论坛版主
|
地板#
发布于:2004-08-06 17:27
用定时器可以啊,在使用的timer的ist中来扫描键盘就行了:在timer的isr中返回MySysintr,这个sysintr和irq的映射自己做(oeminit),然后在timer的初始化中用interruptinitialize来建立MySysintr和一个event的关系(event的建立在初始化时做),然后让ist等待这个事件,当isr返回MySysintr时kernel会把event置为有信号,从而ist开始运行,就可以扫描了。
|
|
地下室#
发布于:2004-08-08 10:46
请问timer的isr在哪个文件中??
另外,如果我把WaitForSingleObject的等待参数设为一段时间而不是永远能不能达到目的? |
|
论坛版主
|
5楼#
发布于:2004-08-09 12:55
...哪个文件就只有麻烦兄弟自己动手找找了:)我不知道你用的什么板子和bsp,如果是arm的片子,中断服务全部在一个函数中:OEMInterruptHandler,在里面自己检查中断状态寄存器从而对不同设备进行处理。如果是其他的片子,需要自己实现isr然后在oeminit里面用hookinterrupt挂到中断服务链中。从可行性角度讲,ist可以只等待一段时间,但是你前面问的是可不可以用定时器,我说可以,既然用了定时器,我认为就没必要只等一段时间。如果使用等一段时间,你就没必要使用timer来做,在你的应用代码里面直接sleep或者wait一段时间就去查询即可,你可以先定下来使用什么方式来查询,good luck。
|
|