Fórum Tempos menores que 1 ms #477914
04/05/2014
0
Olá pessoal.
Tenho essa rotina aqui.
Preciso contar tempos menores que 1 ms. (serve microsegundos).
Não posso basear a rotina no clock do PC, pois se trocar o mesmo por um mais rápido, dará diferença.
Tenho essa procedure mas nçao está funcionando corretamente.
Preciso de uma rotina que possa setar o tempo por fora F1 começa com 0 e F2 é o tempo final em microsegundos.
Começo o decremento e quando F2=0, caio fora do loop
Alguma santa alma pode ajudar?
procedure Tform1.Delay64(MicroSec: DWord);
var
F1, F2: Int64;
begin
F1:=strtoint(Edit1.Text);
F2:=strtoint(Edit2.Text);
QueryPerformanceCounter (F1);
repeat
// Application.ProcessMessages;
// Instrução a ser executada
QueryPerformanceCounter (F2);
until ((F2 - F1) =Microsec);
Panel1.Color:=clred;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
delay64(1);
end;
Tenho essa rotina aqui.
Preciso contar tempos menores que 1 ms. (serve microsegundos).
Não posso basear a rotina no clock do PC, pois se trocar o mesmo por um mais rápido, dará diferença.
Tenho essa procedure mas nçao está funcionando corretamente.
Preciso de uma rotina que possa setar o tempo por fora F1 começa com 0 e F2 é o tempo final em microsegundos.
Começo o decremento e quando F2=0, caio fora do loop
Alguma santa alma pode ajudar?
procedure Tform1.Delay64(MicroSec: DWord);
var
F1, F2: Int64;
begin
F1:=strtoint(Edit1.Text);
F2:=strtoint(Edit2.Text);
QueryPerformanceCounter (F1);
repeat
// Application.ProcessMessages;
// Instrução a ser executada
QueryPerformanceCounter (F2);
until ((F2 - F1) =Microsec);
Panel1.Color:=clred;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
delay64(1);
end;
Alexandre
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)