Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Intervali manji od 1 ms

[es] :: Pascal / Delphi / Kylix :: Intervali manji od 1 ms

[ Pregleda: 3695 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

*mile*
Nis

Član broj: 84755
Poruke: 79
*.internet.krstarica.net.



Profil

icon Intervali manji od 1 ms27.01.2007. u 21:34 - pre 179 meseci
Pozdrav,

kako da kontrolisem vremenske intervale manje od 1 milisekunde.

Unapred zahvalan...Milan
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Intervali manji od 1 ms27.01.2007. u 21:50 - pre 179 meseci
Kodom koji se izvrsava za vreme manje od 1 ms :)

Kako mislis "kako da kontrolises intervale"!?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2672



+76 Profil

icon Re: Intervali manji od 1 ms27.01.2007. u 22:33 - pre 179 meseci

> kako da kontrolisem vremenske intervale manje od 1 milisekunde.

Intervali ispod 1ms se mogu dobiti pomoću QueryPerformanceCounter API funkcije i RDTSC cpu asemblerske instrukcije. Za oba možeš potražiti primere i dalja objašnjenja na ovom forumu. Takođe, ne očekuj čuda, Windows nije real time OS i nije namenjen pouzdanom radu sa tako malim intervalima, i to svakako ne u user mode aplikacijama.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Intervali manji od 1 ms28.01.2007. u 00:23 - pre 179 meseci
Code:

// Delay * 100ns (e.g. PreciseDelay(10) will sleep 1000ns)
procedure PreciseDelay(const Delay : Int64);
var
  Timer    : THandle;
  LargeInt : Int64;
begin
  Timer := CreateWaitableTimer(nil, FALSE, 'MyPreciseTimer');
  If Timer <> 0 Then
  Begin
    Try
      LargeInt := -Delay;
      SetWaitableTimer(Timer, LargeInt, 0, nil, nil, FALSE);
      WaitForSingleObject(Timer, INFINITE);
    Finally
      CloseHandle(Timer);
    End;
  End;
end;
 
Odgovor na temu

*mile*
Nis

Član broj: 84755
Poruke: 79
*.internet.krstarica.net.



Profil

icon Re: Intervali manji od 1 ms28.01.2007. u 12:38 - pre 179 meseci
E upavo mi ovo treba, znaci generisanje pauze (mada to sam trebao da kazem odmah...)
A sto se preciznosti tice nije mi mnogo bitna. Konkretno treba mi pauza od nekih 10
mikrosekundi, e sad da li ce ta pauza da bude 15 ili 20 mikrosek. potpuno nebitno.

Jedino sto mi je do sada padalo na pamet je asm instukcija NOP ali ova reiser-ova
procedura je mnogo elegantnija.

Pozdrav svima i hvala.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2672



+76 Profil

icon Re: Intervali manji od 1 ms29.01.2007. u 08:31 - pre 179 meseci
> E upavo mi ovo treba, znaci generisanje pauze (mada to sam trebao da kazem odmah...)
> A sto se preciznosti tice nije mi mnogo bitna. Konkretno treba mi pauza od nekih 10
> mikrosekundi, e sad da li ce ta pauza da bude 15 ili 20 mikrosek. potpuno nebitno.

Sa SetWaitableTimer tu preciznost možeš dostići samo ako računar ima praznog hoda, ako nešto radi onda teško to možeš postići, a svakako ne uvek. Veće šanse su (i kod opterećenih računara) ako se koristi petlja i RDTSC ili QueryPerformanceCounter za merenje protoka vremena.

 
Odgovor na temu

*mile*
Nis

Član broj: 84755
Poruke: 79
91.150.101.*



Profil

icon Re: Intervali manji od 1 ms04.02.2007. u 00:01 - pre 179 meseci
Pozdrav,

ali kad traje pauza nista se drugo nece izvrsavati, sem ako OS radi nesto u pozadini.
Mada probacu sve predloge pa koji se najbolje pokaze....sve najbolje.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2672



+76 Profil

icon Re: Intervali manji od 1 ms04.02.2007. u 11:00 - pre 179 meseci
> ali kad traje pauza nista se drugo nece izvrsavati, sem ako OS radi nesto u pozadini.
> Mada probacu sve predloge pa koji se najbolje pokaze....sve najbolje.

Itekako hoće, ne možeš se pouzdati da baš u tom trenutku se ne okine SysterRestore service, mrežni zahtev, indeksiranje, startovanje user application, skeniranje virusa... Nema garancija čak ni sa dedicated mašinama.
 
Odgovor na temu

Vdjuric
Vladimir Djuric
student
Beograd

Član broj: 20863
Poruke: 64
*.wireless.org.yu.

Sajt: www.marettasoftware.com


Profil

icon Re: Intervali manji od 1 ms06.02.2007. u 09:47 - pre 179 meseci
Meni bi trebalo nesto slicno...

Kako da izmerim tacno vreme za koje si izvrsava neka procedura? U pitanju su velicine od otprilike 20-30ms...
U toj proceduri se nalazi kod za komunikaciju sa LPT uredjajem, i na vecini kompjutera se to lepo odradi preko 2 poziva gettickcount funkcije... I izmererno vreme varira izmedju 20 i 40ms...
E sad, u najvecem broju slucajeva na istom kompu to vreme bude uvek isto, npr 31ms... Pa mi je to nekako sumnjivo... ali, problem nije u tome - problem se javlja sto neki kompovi daju vreme 10, ili jos gore 0!!! Apsolutno mi je nemoguce da se ta procedura toliko brzo izvrsi na njima! Posebno me nervira sto su cesto u pitanju neki krsevi od kompova koji tu proceduru "izvrse" brze nego neka nova cetvorka?!?

Ima li neko ideju o cemu se ovde radi i kako to resiti?
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 801
*.grappolo.co.yu.



+62 Profil

icon Re: Intervali manji od 1 ms03.03.2007. u 16:09 - pre 178 meseci
Kombinacijom funkcija QueryPerformanceFrequency i QueryPerformanseCounter mozes resiti problem merenja malih intervala.
Procitaj u Delphi help-u; ides na Help->Windows SDK-> Index, ukucaj i pogledaj...

Rajko
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Intervali manji od 1 ms

[ Pregleda: 3695 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.