CPU Auslastung messen

Gast #663413
Lesenswert?
• ▲
▼
Hallo Allerseits,
ich würde gerne mal wissen wie man feststellen kann ob ein 
Microcontroller noch genuegend Rechenpower hat, bzw. wie hoch die cpu 
auslastung ist.

Speicher und Flash bedarf laesst sich ja relativ leicht ermitteln, aber 
woher weiss ich das die CPU das dann auch immer noch schafft was ich 
will?

Mein naiver Ansatz dazu wäre jetzt einfach in der main() funktion eine 
variable in einer endlossschleife zu inkrementieren und in nen interrupt 
z.b. jede sekunde zu schauen wieviel increments der hauptthread geschaft 
hat. Da alle meine eigentlichen Aufgaben die der uc zu bewaeltigen hat 
in irgendwelchen interrupts abgearbeitet werden sollte das doch 
eigentlich klappen oder?

Beim uc handelt es bei mir um einen atmega8 aber das sollte man ja 
eigentlich auf so ziemlich jeden uc uebertragen koennen oder?

Habt ihr Anregungen oder weiterere Gedanken diesbezueglich, bin mir 
nicht sicher ob ich da vl. voll aufm Holfzweg bin oder nicht?


Gruss,
Karsten
#663426
Lesenswert?
• ▲
▼
Noch besser: Anstelle des Oszi, hänge ein RC Glied dran: 0V entsprechen 
0%, 5V (oder bei was auch immer die Betriebsspannung liegt) entsprechen 
100%. Wenn man jetzt noch einen Spannungsteiler verwendet, dann kann man 
das ganze so kalibrieren, dass 0% 0mV entsprechen und 100% 100mV. Somit 
hat man direkt eine % Skala...
#664037
Lesenswert?
• ▲
▼
@ Karsten (Gast)

>Wie muss denn das RC-glied dimensioniert sein? Das klingt mir irgendwie
>nach nen Tiefpass ist das richtig?

Ja. Die Zeitkonstante sollte um den Faktor 100..1000 grösser sein, als 
die Periodendauer der Pulse, die gemessen werden.

MfG
Falk
Gast #664602
Lesenswert?
• ▲
▼
> Mein naiver Ansatz dazu wäre jetzt einfach in der main() funktion eine
> variable in einer endlossschleife zu inkrementieren und in nen
> interrupt z.b. jede sekunde zu schauen wieviel increments der
> hauptthread geschaft hat.

In der Regel hat man beim µC ja eher gewisse Echtzeitanforderungen. Da 
spielt es meistens keine Rolle, wieviel Prozent der Gesamtrechenzeit 
wirklich genutzt werden, sondern eher, daß bestimmte Code-Abschnitte in 
definierter Maximalzeit fertig sind, während andere Code-Abschnitte 
unkritisch sind.

> Da alle meine eigentlichen Aufgaben die der uc zu bewaeltigen hat
> in irgendwelchen interrupts abgearbeitet werden sollte das doch
> eigentlich klappen oder?

Wenn einer dieser Interrupts zu lange braucht, bringt es dir nichts, 
wenn dann noch 80% der "Rechenzeit" ungenutzt sind. Es tut dann trotzdem 
nicht.

> Habt ihr Anregungen oder weiterere Gedanken diesbezueglich, bin mir
> nicht sicher ob ich da vl. voll aufm Holfzweg bin oder nicht?

Wie du sicher schon gemerkt hast, halte ich die Idee für die meisten 
µC-Anwendungen für mäßig sinnvoll.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren