zhoujie7592
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-05-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1228回复:2

该如何选用内部定时器

楼主#
更多 发布于:2002-11-30 19:30
我看了下论坛中大部分关于系统内部定时器的发言里面提到几种
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分酬谢,说话算话。
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-12-02 08:56
毫秒级用KeSetTimer就可,如果是用户层程序用多孀媒体定时器就够了,精度还可以
易水
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-02 09:32
你的情况用一个周期性定时器比较好。
KeSetTimerEx(timer, duetime, period, dpc);可以实现。MS级的。
生命驱动,活力无限!
游客

返回顶部