阅读:1229回复:2
该如何选用内部定时器
我看了下论坛中大部分关于系统内部定时器的发言里面提到几种
1、DDK 中的KeSetTimer()函数 2、多媒体定时器 3、IRQ0(主板上的8254/8253)中断定时器 在windows底下我只用过多媒体定时器,基本上使用还比较容易,但精度好象不太高,付作用还不清楚。在DOS底下用过IRQ0的定时器效果非常好。从论坛中的发言中听说KeSetTimer()这种定时器也比较好,但使用上好象不太容易。 我现在打算用VC++开发一个位置控制程序,就是一边计算位置数据,一边第隔几毫秒到十几毫秒中断位置数据计算将某几个位置数据从某一端口送出,送出数据后,仍回到计算的中断处继续执行。原来在DOS底下是使用的IRQ0(主板上的8254/8253)中断定时器完成的几毫秒的定时,但现在我从论坛的发言中感觉到在windows下好象IRQ0定时器不太好引用,想试用DDK 中的KeSetTimer()函数来解决上面的定时,不知道行不行?如果谁能提供windows9x/2000底下可运行的关于IRQ0定时器中断编程的例子(可修改8254的时间常数,正确稳定调用中断服务程序),至少50分酬谢,说话算话。 |
|
沙发#
发布于:2002-12-02 09:32
你的情况用一个周期性定时器比较好。
KeSetTimerEx(timer, duetime, period, dpc);可以实现。MS级的。 |
|
|
板凳#
发布于:2002-12-02 08:56
毫秒级用KeSetTimer就可,如果是用户层程序用多孀媒体定时器就够了,精度还可以
|
|
|