Re: 1ms akce pod WinXP
Vojtěch Bubník
bubnikv@seznam.cz
Úterý Duben 28 15:13:37 CEST 2009
Na Windowsech s pomocí multimedia timers dosáhnete časování v řádech jednotek ms většinou, ale není to zaručené, jak jste již zjistil.
Napsat si modul do kernelu, ať už to budou běžné Windows či Linux pomůže, ale vyovolání timeru vám to nezaručí. Je to tím, že jádro a ovladače nejsou preemptivní. Pro zajímavost, Windows CE jsou psány jako real time operační systém, což znamená, že je přesně definovaná maximální doba odezvy, ale 10% z 1ms to nebude.
Pokud nutně potřebujete spolehlivé časování po 1ms, potom budete potřebovat buď real time operační systém a umět ho použít, a nebo nějaký externí bastl. Druhé řešení mi připadá smysluplnější a univerzálnější.
Vojta Bubník
> ------------ Původní zpráva ------------
> Od: Ing. Petr Weissar, Ph.D. <weissar@kae.zcu.cz>
> Předmět: 1ms akce pod WinXP
> Datum: 28.4.2009 09:54:55
> ----------------------------------------
> 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
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
Další informace o konferenci Hw-list