如何实现100微秒的延迟

gravity3000 2001-04-27 09:54:00
time控件最小时间间隔为1毫秒,如何实现100微秒的延迟。
...全文
504 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
Delphier 2001-08-04
  • 打赏
  • 举报
回复
gettickcount怎么声明?要使用哪个单元?否则会说unindentified
jouky 2001-05-02
  • 打赏
  • 举报
回复
有没必要呀?
日总是我哥 2001-05-02
  • 打赏
  • 举报
回复
SetTimer(...)
KillTimer(...)
NewStarSE 2001-05-01
  • 打赏
  • 举报
回复
要在WINDOWS下实现这么精确的定时是不可能的,除非是在类似DOS的单道式操作系统下。
stella53 2001-05-01
  • 打赏
  • 举报
回复
嘿嘿。。。
1、先设置当前线程优先级为实时
2、用嵌入汇编来做就成了。。
严黎斌 2001-04-30
  • 打赏
  • 举报
回复
别争论了,呵呵。目前pc机的硬件决定了不可能有这么高的精度的。
操作系统也有局限。windows不是实时操作系统。
liming_zh 2001-04-30
  • 打赏
  • 举报
回复
我的意见 是 : 时种控件
thankl 2001-04-30
  • 打赏
  • 举报
回复
如果有时钟控件的源代码,也许我们可以解决这个问题,有兴趣讨论这个话题
联系我thankl@sina.com
hj_cn 2001-04-29
  • 打赏
  • 举报
回复
可以用''时钟''控件解决
musicwind 2001-04-28
  • 打赏
  • 举报
回复
同意zzutrain(小雨),没有看到有精确到0.1毫秒的时间函数
suzg 2001-04-28
  • 打赏
  • 举报
回复
一个笨办法:

var
Count_Per_us:Int64;

第一步:测试

var
Tick:DWORD;
i, j:Integer;
TotalTime:DWORD;
begin
Tick:=GetTickCount;
for i:=1 to 100000000 do;
TotalTime:=GetTickCount-Tick; //100000循环用了TotalTime
Count_Per_us:=Round(100000000000/TotalTime); //每微秒的循环数
end;

第二步:可以用了

for i:=1 to Count_Per_us*100 do; //这就是延时了

这个算法肯定有误差,尤其在Windows还有其他任务的时候,在我的计算机(233MMX),TotalTime在500±20,可见还是不小的(4%)

再说一句:有必要这么精确吗?


mrzj 2001-04-28
  • 打赏
  • 举报
回复
Tdatetime类型也是Real类型,剩下的用公式一算出来了
GoodHope 2001-04-27
  • 打赏
  • 举报
回复
NT下也不准,虽说总的次数是一样的,但是往往误差数ms,不过如果是设置1ms,这可是误差了百分之几百了。
kks 2001-04-27
  • 打赏
  • 举报
回复
用SLEEP(100)不行吗?
Kingron 2001-04-27
  • 打赏
  • 举报
回复
Win9x对时钟支持不是很精确,NT和2000要好一些。这个问题讨论了多次,也没有一个好的解决方法,听高手说要写驱动程序,我也不知道怎么做。:)
Kingron 2001-04-27
  • 打赏
  • 举报
回复
timeGetTime
timeSetEvent
GoodHope 2001-04-27
  • 打赏
  • 举报
回复
忘记说了用timeSetEvent系列函数能做到1ms间隔的中断,不过,似乎时间不是很精确。
GoodHope 2001-04-27
  • 打赏
  • 举报
回复
应该不能。如果有这么频繁的中断发生,CPU大部分时间都消耗在状态切换上了。CPU的状态(保护等级和进程)的切换牵扯到大量操作,是非常慢的。
nisky 2001-04-27
  • 打赏
  • 举报
回复
在98下,好象不会如此精确,在NT写可以实现,我在哪一本杂志上看见过一个介绍精确定时间的文章,它是通过内核实现的。
武稀松 2001-04-27
  • 打赏
  • 举报
回复
sleep(x:integer);
x 为延迟的毫秒数
加载更多回复(2)

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧