如何实现微秒级的计时精度?(10分)

  • 主题发起人 主题发起人 smhp
  • 开始时间 开始时间
S

smhp

Unregistered / Unconfirmed
GUEST, unregistred user!
请高手帮助!

如果方便请帖出代码示例!
 
请高手帮助!
 
请高手帮助!
 
下面是我的数据采集模块的代码,它的精度是1毫秒!能实现0.1毫秒吗?

procedure TCollectThread.Execute;
var
i : Integer;
lgTick1,lgTick2,lgPer:TLargeInteger;
fTemp:Single;
iTen:integer;
begin

QueryPerformanceFrequency(lgPer);
fTemp:=lgPer/1000;
iTen:=Trunc(fTemp);
QueryPerformanceCounter(lgTick1);
lgTick2:=lgTick1;
i:=Low(AArray);
while not Terminated do begin
if E_collect.WaitFor(INFINITE)=wrAbandoned then Exit;
While (i<=ArrayWidth) do begin //ArrayWidth=High(AArray);
QueryPerformanceCounter(lgTick2);
If lgTick2 - lgTick1 > iTen Then begin
lgTick1 := lgTick2;
AArray := ADIN; //采集数据
Inc(i);
end;
end;

end;

end;
 
我想问高手:QueryPerformanceCounter能否得到微秒的精度!
 
WaitableTimer可以精确到指令级(XX纳秒)!.

这是我搜索以前的帖子找到的,但不知道怎么用!
 
MSDN上有关于WaitableTimer 的描述
 
xwings:我这里没有MSDN,能否给个例子?
 
用这个控件吧
http://www.specosoft.com/download/zlrdtsc.zip
 
tseug:谢了,但这个控件的精度是多少呢?
 
用GetTickCount啊!
 
t365:GetTickCount能得到比毫秒还小的时间间隔吗?
 
满足你的要求
 
QueryPerformanceCounter 好像是8微秒
陈宽达的Delphi深度历险那本书上有介绍
 
LittleSong:能否介绍一下!
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=845978
 
tseug同志:怪我愚钝,能否给出一个简单的使用DEMO?
 
后退
顶部