rovid ideju idozitesek PC-n

Szabo Laci szala at drotposta.hu
Mon Dec 16 13:24:47 CET 2002


Istvan Retaller  <istvan.retaller at evoran.hu> 2002.12.17. 11:18:03 +1h-kor írta:

> 2002.12.17. 11:35:14, "Bodosi Balazs" <BBALAZS at phys.szote.u-szeged.hu>
> wrote:
> 
> >PIC programozot irok w98 ala assemblyben, mar teljesen keszen van, de 
> >az idoziteseket meg ures ciklussal oldom meg, igy ez gep es 
> >sebessegfuggove teszi a progit. Szeretnek valami univerzalisan 
> >hasznalhato otletetet a nagyon rovid (100ns) koruli idozitesekre. A 
> >portra iras/olvas fix ideig tart vagy az is chipset es sebessegfuggo?
> >Valami 4ms koruli idozitesi otlet is kellene, de ezt talan mar le 
> >tudom trukkosen kezelni.
> >Vegso otletkent arra gondoltam, hogy 1s-ig szamoltatok a geppel 
> >ures ciklusban es ez a szam fog a gep sebessegenek alapjaul szolgalni. 
> >De ez multitaszkos kornyezetben nem tunik tul jo otletnek...
> >Valaki mas esetleg osszefutott-e ezzel a gonddal?
> >A windows WM_TIMER-jet mar probaltam...
> >Udv:
> >    BBalazs
> >    
> >http://www.phys.szote.u-szeged.hu/bbalazs/bbalazs.htm
> >    
> 
> Szia, BBalazs,
> eleg rossz hirem van. Ezeket a csapdakat mar bejartam, irtam PIC
> programozot, csinaltam GAL programozot, ami assemblyben egyetlen
> madzagon kommunikalt oda-vissza, de Winfos alatt mindennek lottek.
> http://www.evoran.hu/
> A Win sajat taskvezerlese ugyanis konyortelenul akkor veszi el a
> vezerlest a programodtol, mikor akarja, hiaba az IT tiltas es mas
> DOS-ban alkalmazott trukk. Hiaba minden assembly ravaszkodas, a

Hogy nektek semmi sem jó.
Mondj egy másik multi-task oprendszert amelyik nem igy csinálja!



> Csak a Win sajat idoziteseire tamaszkodhatsz, de ezek is vacakok
> rovid idozites eseten.

nem vacakok

> Esetleg a programod prioritasat novelheted, remlik, hogy erre van
> mod, ez engem is erdekelne, de nem ertek a WIN-hoz.

akkor miért szidod!?


ez egy régi levél egy másik listáról.

> Udv, Mindenki!
> 
> Haaat, sracok, azt kell mondjam, hogy Jan Chika a KIRALY!
> Ugyanis (majdnem) mindenki megprobalt lebeszelni arrol, hogy Windows-ban
> nem lehet 1_msec-es idozitest csinalni, de Jan Chikanak van igaza:
> igenis lehet! Meghozza eleg korrektul, sot akar ketfele modszerrel is.
> 
> Az egyik megoldas:
> 
> >>van a winben egy prezicion timer amit tevesen multimedia idozitonek
> >>>>szoktak hivni
> >>o kepes arra hogy callbackoljon 1msecenkent
> 
> >>egyszeru!
> >> a window megtudja mondani hogy az adot gepen milyen felbontast >>tamogat
> >> kerdezd le 
> >>
> >>"timeGetDevCaps" hivas a winmm libraryban
> >>
> >>az idozitest  a "timeSetEvent"-el allithatod
> 
> 
> A masik megoldas (szinten Jan Chikatol kaptam a tippet):
> 
> A lenyeg a QueryPerformanceCounter() fv. ami egy belso HW regiszterbol
> veszi az erteket, tehat elvileg a pontossaga fuggetlen minden sw
> esemenytol.
> 
> Akit erdekel, annak itt egy gyorsan osszedobott pelda, ami csak annyit
> csinal, hogy egy szamlalot 1kHz-el leptet (egeszen pontosan 1000.1526
> Hz-el; a gyorsabb osztas miatt szamoltam csak 1193-mal; nekem eleg volt
> ez a pontossag), es folyamatosan kiirja a displayre az erteket.
> 
> 
> #include <stdio.h>
> #include <windows.h>
> #include <winnt.h>
> 
> long int counter_1000_Hz;
> LARGE_INTEGER counter_1193182_Hz;
> 
> void main (void)
> {
> 	while(1)
> 	{
> 		if(QueryPerformanceCounter(&counter_1193182_Hz)!=0)
> 		{
> 			counter_1000_Hz=counter_1193182_Hz.LowPart/1193;
> 			printf("%lu\n\r",counter_1000_Hz);
> 		}
> 	}
> }
> 
> 
> Egyebkent itt lehet olvasni egy-ket okossagot mindket megoldasrol:
> http://www.wideman-one.com/gw/tech/dataacq/wintiming.htm
> 
> 
> Viktor
> 
> ----
> lejelentkezes: maiser at chipcad.hu "unsub lista" tartalmu levellel
> tovabbi info: maiser at chipcad.hu "help" tartalmu levellel
> eszrevetel: postamester at chipcad.hu






More information about the Elektro mailing list