computalg
驱动牛犊
驱动牛犊
  • 注册日期2007-03-09
  • 最后登录2009-06-21
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1211回复:2

PCI9052定时中断问题,请教

楼主#
更多 发布于:2007-08-04 03:25
我现在使用DriverStudio 3.1+2K_DDK为PCI9111板卡写WDM驱动程序。PCI9111使用PCI9052
作为PCI接口控制芯片。PCI9111上的计数器8254 CT2,CT1级联后输出端OUT1接到PCI9052的INT2。我编写程序设置CT2、CT1工作在模式3,产生周期为10毫秒的方波,令PCI9052 INT2中断使能,
想试验WinXP下的定时中断。
    我在中断服务程序中累计中断次数,若达到10次则禁止中断、停计数器,然后在DPC中产生
一定输出。现在遇到的问题是中断服务程序只能进入一次,即只能响应一次中断。无论我如何调试,
还没有试验成功响应第二次中断的情况。
    另外,我自己遇到的问题还有,即使上面提到的能够响应一次中断(是通过观察DPC的输出
得知的),DPC的执行也不正常。因为我编写了APP程序测试所写的驱动,结果在Driver Monitor中
并不是每次测试都能看到DPC输出,有时能,有时不能。
    稍微欣慰一点的是,确实中断过了。但对中断把握不好。

    我不知是我自己对某些寄存器设置错了?还是有寄存器忘记设置了?还是有某些概念未理解清楚?以上两个问题百思不得其解。附件中有部分源程序代码,若哪位高手有空,请抽点时间指点一二,不胜感激。algzhang@gmail.com
附件名称/大小 下载次数 最后更新
prog.txt (5KB)  9 2007-08-04 03:25
xp4105
论坛版主
论坛版主
  • 注册日期2006-04-02
  • 最后登录2014-03-29
  • 粉丝1
  • 关注0
  • 积分905分
  • 威望570点
  • 贡献值1点
  • 好评度162点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-08-05 14:11
从1变0,从0变1 。
时光如流水 抓紧时间实现自我价值
computalg
驱动牛犊
驱动牛犊
  • 注册日期2007-03-09
  • 最后登录2009-06-21
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-08-07 01:12
我自己已经解决了。
原因在于ISR中清除中断的指令写的不对。
使用PCI9111手册的清除中断命令就好了。不要直接对INTCSR寄存器操作清除中断。

调试好了还挺高兴的!
游客

返回顶部