阅读:1211回复:2
PCI9052定时中断问题,请教
我现在使用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。 |
|
|
沙发#
发布于:2007-08-05 14:11
从1变0,从0变1 。
|
|
|
板凳#
发布于:2007-08-07 01:12
我自己已经解决了。
原因在于ISR中清除中断的指令写的不对。 使用PCI9111手册的清除中断命令就好了。不要直接对INTCSR寄存器操作清除中断。 调试好了还挺高兴的! |
|