
Delphi Timer
Ahoj,
dělám takovej menší prográmek v Delphi a zjistil jsem, že komponenta Timer je dost nepřesná. Jak mám přesně změřit čas? Díky moc.
Ahoj,
dělám takovej menší prográmek v Delphi a zjistil jsem, že komponenta Timer je dost nepřesná. Jak mám přesně změřit čas? Díky moc.
Předmět | Autor | Datum |
---|---|---|
jak nepresna? lol...
ved timer ti berie cas z biosu a ten z RTC cipu ktory mas na maticnej...
takze… shiro 26.10.2008 09:52 |
shiro | |
"Aplikace Windows neodchytávají přerušení BIOSu (jako to bylo nutno dělat v dobách "před Windows"),… m4rky 26.10.2008 09:57 |
m4rky | |
Zkus si nějakou komponentu vybrat tady (high resolution timer):
http://www.torry.net/quicksearchd.ph… host 26.10.2008 09:58 |
host | |
Timer neslouzi k mereni casu, ale k nacasovani udalosti.
Pro mereni muzes pouzit napr. rozdil dvou G… Jan Fiala 26.10.2008 10:04 |
Jan Fiala | |
Díky moc. GetTickCount mi pracuje :-) m4rky 26.10.2008 10:17 |
m4rky | |
Já používám (ve VB) WinAPI QueryPerformanceFrequencyAny a QueryPerformanceCounterAny. poslední mia 26.10.2008 10:26 |
mia |
Zpět do poradny Odpovědět na původní otázku Nahoru
jak nepresna? lol...
ved timer ti berie cas z biosu a ten z RTC cipu ktory mas na maticnej...
takze ked si nastavis na timeri ze ma nieco robit kazych 1000ms, tak to bude vzdy 1000ms...
"Aplikace Windows neodchytávají přerušení BIOSu (jako to bylo nutno dělat v dobách "před Windows"), místo nich hardwarová přerušení zpracovávají samotná Windows. Je ovšem třeba říci, že vnitřní hodiny počítače nejsou příliš přesné. Ve Windows 98 má časovač interval 55 milisekund, ve Windows NT je to asi 10 milisekund. Aplikace Windows nemohou dostávat "tiky" rychleji, než je toto rozlišení. Navíc vlivem zaokrouhlování i při nastavení intervalu 1000 milisekund bude skutečná doba trochu jiná, zde konkrétně 989 milisekund."
viz http://www.zive.cz/Clanky/Umime-to-s-Delphi-8-dil-- -zadavani-informaci-vstupy-casovac/sc-3-a-101108/de fault.aspx
Je to i vidět. Po minutě se to rozchází s normálním časem asi o 3-5 sekund.
Zkus si nějakou komponentu vybrat tady (high resolution timer):
http://www.torry.net/quicksearchd.php?String=timer& Title=Yes
Timer neslouzi k mereni casu, ale k nacasovani udalosti.
Pro mereni muzes pouzit napr. rozdil dvou GetTickCount(), popr. pokud bys trval na timeru, tak pouzit nejake PerformanceCounter
Díky moc. GetTickCount mi pracuje
Já používám (ve VB) WinAPI QueryPerformanceFrequencyAny a QueryPerformanceCounterAny.