z_bing
驱动中牛
驱动中牛
  • 注册日期2002-09-28
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2004-08-14 11:36
我没有MSDN
爱国守法,明理诚信,团结一致,战胜非典!
s_6666_s_qd
驱动巨牛
驱动巨牛
  • 注册日期2004-08-14
  • 最后登录2006-07-11
  • 粉丝0
  • 关注0
  • 积分199分
  • 威望22点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2004-08-15 11:22
别费筋拉,精度这么高计算机根本就达不到,还是想别的辙吧
whitespray
驱动牛犊
驱动牛犊
  • 注册日期2004-04-23
  • 最后登录2006-10-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2004-08-15 11:30
用for循环,可以先用queryperformancecounter测试一下要循环多少次是你所需的时间,这也不是很准确的,不过波动不大
s_6666_s_qd
驱动巨牛
驱动巨牛
  • 注册日期2004-08-14
  • 最后登录2006-07-11
  • 粉丝0
  • 关注0
  • 积分199分
  • 威望22点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2004-09-15 13:47
用这个
static double
msecond()
{
#ifndef WIN32
struct timeval  tv;
gettimeofday(&tv, 0);
return (double)tv.tv_sec*1.0e3 + (double)tv.tv_usec*1.0e-3;
#else
clock_t clk;
clk = clock();
return clk * 1000 / CLOCKS_PER_SEC;
#endif
}
hhyjmd
驱动牛犊
驱动牛犊
  • 注册日期2004-06-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望11点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2004-09-18 20:36
用Sleep(time)就可以了





不知道对不
lzy371
驱动牛犊
驱动牛犊
  • 注册日期2004-08-08
  • 最后登录2004-09-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2004-09-19 08:40
开发驱动的环境下,利用硬件定时器进行中断可以达到很高的定时精度
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2004-09-19 10:30
用Sleep(time)就可以了





不知道对不

当然不对,
你使用
dwTime = timeGetTime() ;
Sleep(1) ;
dwTime = timeGetTime()-dwTime ; // 结果不是1,通常是10或更大
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
zsh_7769
驱动小牛
驱动小牛
  • 注册日期2004-04-15
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2004-09-20 10:03
sleep()的精度太低了吧
jingquanli
驱动牛犊
驱动牛犊
  • 注册日期2004-01-28
  • 最后登录2008-04-28
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2004-10-15 02:18
使用timegettime() API函数
jingquanli
zsh_7769
驱动小牛
驱动小牛
  • 注册日期2004-04-15
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2004-10-15 10:27
好像sleep()只能精确到秒吧
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2004-10-15 15:08
首先要清楚一个概念:
Window95以后,微软采用的是抢占式多任务。这样的一个结果就是存在了系统调度问题。以Win2000为例,它的Chip(时间片)长度为1毫秒。所以,即使你写了一个for循环,在循环体中间就可能出现CPU被切换到别的任务上去了。这和协同多任务是大大不同的。

所以,在应用级别上去做15us,好像不太可能。系统随时有权中断掉你的代码。
你应该从更高的层次来解决问题:我认为,应用程序毫无必要来要求这么高的定时精度,很可能是你的系统架构有问题了。

能说一下你要15微妙的目的何在吗?
A strong man can save himself. A great man can save another.
上一页 下一页
游客

返回顶部