1ms akce pod WinXP

Miroslav Šinko sinkomiro@gmail.com
Úterý Duben 28 10:21:02 CEST 2009


Vase poziadavky su na uplnej hrane mozneho, pridadne za nou. Presiel
som si MSDN ohladom MM timerov.
Najprv si skuste zistit, ake rozlisenie umoznuje Vas system:  timeGetDevCaps
Potom nastavenie rozlisenia: timeBeginPeriod (k nej ukoncovacia je
timeEndPeriod)

Ak ste timeBeginPeriod nepouzivali, zrejme Vam pomoze, lebo:
Windows NT/2000: The default precision of the timeGetTime function can
be five milliseconds or more, depending on the machine. You can use
the timeBeginPeriod and timeEndPeriod functions to increase the
precision of timeGetTime

Tieto funkcie pracuju s minimalnou hodnotou rozlisenia 1ms, rovnako
ako timeGetTime, t.j. +/-10% pri 1ms merat nedokazete.

Inde v popise MM timerov pisu: Periodic timer events with an event
delay of 10 milliseconds or less consume a significant portion of CPU
resources.

miro


2009/4/28 Ing. Petr Weissar, Ph.D. <weissar@kae.zcu.cz>:
> Zdravim, rada z vas tu k ovladani HW pouziva PC s Win (XP) a tak tu zkusim udat
> dotaz meho kolegy:
>
> Potrebuji spoustet nejaky podprogram s periodou 1ms. Umim to udelat pomoci
> TimeSetEvent a callback funkce - z knihovny mmsystem. Umim take zjistit presnou
> periodu spousteni pomoci TimeGetTime. Problem je ze perioda je v prumeru
> dostatecne presna,  me by stacila prenost kolem 10%, ale obsas do toho promluvi
> win, a perioda se prodlouzi 1x na 10-20ms, pak se to system snazi dohnat
> kratkymi priodami a pak se to vrati zase k normalu. Je to samozrejme
> nepravidelne s cetnosti tak do 20 za 1s. Co by me stacilo - perioda 1ms,
> presnost 10% (ale znama, umim zjistit pomoci TimeGetTime) a prodlouzeni, pokud
> obcas nastane by nemelo presahnout 3-4ms. Potreboval bych zjistit, zda to jde.
>
>
> Poradite prosim nekdo ? Dekuji
>
>        Petr Weissar



Další informace o konferenci Hw-list