ziyun
驱动小牛
驱动小牛
  • 注册日期2003-07-28
  • 最后登录2009-05-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望109点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
阅读:1221回复:5

用查询的方式做的键盘如何写ist函数

楼主#
更多 发布于:2004-08-05 17:17
如题,我做的键盘是用查询的方式进行的,怎么写ist程序呢??如果用中断初始化interrpute这个我会,但是用查询的方式就不会了,有没有人做过啊
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-06 12:41
ist用来完成isr没做完的事,使用查询方式不存在ist的问题,直接扫描键盘,读出扫描码就完了
根据地的兄弟们,团结就是力量
ziyun
驱动小牛
驱动小牛
  • 注册日期2003-07-28
  • 最后登录2009-05-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望109点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-06 13:46
我的意思是说怎么写程序让它每隔一段时间来扫描键盘?用定时器??怎么做
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-06 17:27
用定时器可以啊,在使用的timer的ist中来扫描键盘就行了:在timer的isr中返回MySysintr,这个sysintr和irq的映射自己做(oeminit),然后在timer的初始化中用interruptinitialize来建立MySysintr和一个event的关系(event的建立在初始化时做),然后让ist等待这个事件,当isr返回MySysintr时kernel会把event置为有信号,从而ist开始运行,就可以扫描了。
根据地的兄弟们,团结就是力量
ziyun
驱动小牛
驱动小牛
  • 注册日期2003-07-28
  • 最后登录2009-05-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望109点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-08 10:46
请问timer的isr在哪个文件中??
另外,如果我把WaitForSingleObject的等待参数设为一段时间而不是永远能不能达到目的?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-09 12:55
...哪个文件就只有麻烦兄弟自己动手找找了:)我不知道你用的什么板子和bsp,如果是arm的片子,中断服务全部在一个函数中:OEMInterruptHandler,在里面自己检查中断状态寄存器从而对不同设备进行处理。如果是其他的片子,需要自己实现isr然后在oeminit里面用hookinterrupt挂到中断服务链中。从可行性角度讲,ist可以只等待一段时间,但是你前面问的是可不可以用定时器,我说可以,既然用了定时器,我认为就没必要只等一段时间。如果使用等一段时间,你就没必要使用timer来做,在你的应用代码里面直接sleep或者wait一段时间就去查询即可,你可以先定下来使用什么方式来查询,good luck。
根据地的兄弟们,团结就是力量
游客

返回顶部