社区
Delphi
帖子详情
如何实现100微秒的延迟
gravity3000
2001-04-27 09:54:00
time控件最小时间间隔为1毫秒,如何实现100微秒的延迟。
...全文
504
22
打赏
收藏
如何实现100微秒的延迟
time控件最小时间间隔为1毫秒,如何实现100微秒的延迟。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
易语言高精度
微秒
延迟
易语言高精度
微秒
延迟
源码,高精度
微秒
延迟
,高精度等待,SetWaitableTimer,CreateWaitableTimerA,CloseHandle,MsgWaitForMultipleObjects
Windows平台
微秒
级 延时程序_Window平台
微秒
级
延迟
_
如何在Windows平台上
实现
微秒
级延时, time相关函数
实现
的只是毫秒级的延时,有时无法满足精度要求,下面是一个
微秒
级延时的测试实例,测试OK。测试程序每间隔
100
us,计数器加1,计数器每增加
100
00,打印出当前的时间值(us),同时计算和上一次输出值之间的差(us)。从结果看,1s间隔的累计误差还挺大,时间间隔不是严格的1s,最高有38043us的误差。
易语言高精度
微秒
延迟
源码
易语言高精度
微秒
延迟
源码。@易语言源码分享站。
真正的
微秒
定时器 ,
实现
毫秒精度的延时
实现
毫秒精度的延时, QueryPerformanceFrequency
vc
实现
微秒
级精度定时器
Visual C++
实现
微秒
级精度定时器。
Delphi
5,939
社区成员
262,944
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章