zaley
驱动小牛
驱动小牛
  • 注册日期2004-07-09
  • 最后登录2019-03-12
  • 粉丝0
  • 关注0
  • 积分243分
  • 威望267点
  • 贡献值0点
  • 好评度104点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2990回复:5

内核定时器精度有多高?能实现毫秒级的定时吗

楼主#
更多 发布于:2008-12-17 12:57
内核定时器KeSetTimerEx精度有多高?是不是最高15ms?能实现2ms的定时任务吗
flyingkisser
驱动牛犊
驱动牛犊
  • 注册日期2005-04-09
  • 最后登录2011-01-05
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望48点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-12-19 09:38
根据文档,最小单位是1ms.
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2008-12-20 21:17
没那么准的。需要自己计算时钟的。
一切都是时间问题!
Sealyet
驱动牛犊
驱动牛犊
  • 注册日期2004-09-10
  • 最后登录2013-05-04
  • 粉丝0
  • 关注0
  • 积分125分
  • 威望35点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-11-11 16:25
回 楼主(zaley) 的帖子
最小时间间隔100ns,100ns的整数倍长的定时间隔都是可以准确实现的

LARGE_INTEGER duration;

duration.QuadPart = -2*10*1000; // 2ms

KeSetTimer.....
qxwandy
驱动牛犊
驱动牛犊
  • 注册日期2009-07-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-11-17 15:36
毫秒级应该是可以的
drivercoding
驱动牛犊
驱动牛犊
  • 注册日期2009-10-19
  • 最后登录2013-08-17
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望191点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-11-24 12:53
Windows不是RTOS,他的timer从本质上就不是以高精度的方式存在的。在所有的x86架构中,time-slice的时间都是大约10ms。Linux和Windows都是如此。

基本上,如果你的设备需要一个精度高于10ms的time,并且*绝对不能出错*的话,你的设备应该有自己的time clock。

如果允许一定的时间误差,那么,10ms也好,100ms也好,都没什么关系吧。
游客

返回顶部