Queued State Machine: IDLE Optimierung
Hallo liebes Forum,
ich habe eine recht komplexe Queued State Machine (QSM) für Kontrolle und Data-Logging von selbtgebauter Hardware aufgebaut - und versuche diese gerade bezgl. Rechnerauslastung zu optimieren.
Die QSM befindet sich, wenn keine Events/Daten eingehen, im IDLE modus, wo der nächste IDLE state in die queue geschoben wird.
Derzeit habe ich da keine wait/tick counter drin, d.h. es werden maximal schnell idle states erzeugt und abgerufen. Das ist natürlich quatsch.
Ich frage mich nun lediglich, welche timing funktion ich am besten verwende, weil ich nicht weiß, wie diese interne gehandabt werden:
eine "wait until next ms multiple" mit z.B. 10 ms könnte ich in den idle state einbauen.
Nur weiß ich nicht, ob dieses "wait" der _delay funktion auf einem µC gleichkommt (und im prinzip auch nur den prozessor Idlen lässt) - oder welche timing funktionen tatsächlich Betriebssystem Timer verwenden - und zwischendurch die Ressourcen freigeben. Oder tun das alle?
Ich freue mich über jegliche Tips, was zu verwenden die beste Idee ist!
LG
Alex
|