Forum: Mikrocontroller und Digitale Elektronik Prozessor-Auslastung ermitteln


von Prozessor (Gast)


Lesenswert?

Hallo Ihr,

ich lese öfters hier im Forum, dass Baster die Auslastung des uC´s 
angeben.
Wie kann ich diese berechnen, um zum beispiel das auf einem LCD 
anzuzeigen?

Gibt es dafür Funktionen? Wüsste jetzt nict direkt, wie ich das umsetzen 
sollte.

Grüße

von Karl H. (kbuchegg)


Lesenswert?

Prozessor schrieb:
> Hallo Ihr,
>
> ich lese öfters hier im Forum, dass Baster die Auslastung des uC´s
> angeben.

Ist ganz einfach:
Solange du keinen sleep im Programm hast, ist deine Auslastung immer 
100%. Was solls auch sonst sein? Dein µC arbeitet immer irgendwelche 
Befehle ab.

Nur verteilen sich diese 100% auf verschiedene Programmteile. Und das 
ist dann der eigentlich interessante Teil. Meistens will man wissen, 
wieviel Zeit in einer ISR vergeht.
Dann schaltet man am Anfang der ISR einen Pin auf 1 und am Ende wieder 
auf 0.
Mit einem Oszi kann man dann die Zeit ausmessen, die der Pin auf 1 ist 
und die der Pin auf 0 ist. Und daraus lässt sich dann wieder errechnen, 
wieviele % der Zeit, der µC in der ISR verbringt.

von Prozessor (Gast)


Lesenswert?

Aaaahaa.. Okay.
Die Idee mit dm Oszi find ich super, mal gucken ob ich da dann demnächst 
mal was find -.-

Danke!

von Luxx (Gast)


Lesenswert?

Angenommen Du hast in der Main eine Schleife, die wartet, bis 
1Millisekunde rum ist, dann alle Tasks bedient und dann wieder wartet, 
bis zur nächsten Millisekunde.

Dann brauchst Du nur einen Port zu setzen/löschen. Und kannst direkt 
(oder über RC-Filter) ein Drehspulmessgerät mit 5V Vollausschlag dran 
hängen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ich mach das immer so, dass ich in der mainloop{} einen Zähler 
hochlaufen lasse, um dann die Durchläufe pro Sekunde zu ermitteln. das 
zeigt dann ganz gut, wie viel Rechenleistung noch verfügbar ist, bis 
erste Echtzeitprobleme auftreten können...

von Purzel H. (hacky)


Lesenswert?

Ich hab auch einen Mainloop, dort werden Flags abgefragt und allenfalls 
darauf reagiert. Im Mainloop selbst kann ich dann einen Pin hochsetzen 
und so mit dem Scope zuschauen wie die Auslastung ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.