Forum: Mikrocontroller und Digitale Elektronik µC Auslatung anzeigen


von max sd (Gast)


Lesenswert?

Moin Moin,

Ich möchte die Auslastung(Prozessmäßig) eines ATMegas (ATmega328 oder 
ähnliches) mit Hilfe einer LED bestimmen (kennt sicher jeder vom 
Computer, da ist vorne auch eine LED, die mit einer je nachdem wie hoch 
die benötigte Rechenleistung ist, mit einer recht hohen Frequenz 
blinkt).
Wie ist das zu lösen(Ich programmiere in C)?
Hat jemand schon etwas ähnliches realisiert oder eine Idee, und ist es 
überhaupt möglich das so anzuzeigen wie ich das möchte? ;)

Danke schonmal für die Antwort,

max

von top (Gast)


Lesenswert?

Bevor die CPU in den Idle geschickt wird LED aus, bei jedem aufwecken 
LED an.

von bitte löschen (Gast)


Lesenswert?

Soll die Rechenzeit, die zum Ermitteln und Darstellen der Auslastung 
benötigt wird, mitzählen?
Oder anders: Keine Messung, die nicht das Ergebnis der Messung 
beeinflusst.
Ein solcher Mechanismus müsste komplett mit dem Programm verflechtet 
werden. D.h., dass alle Programmteile einzeln bezüglich ihrer Laufzeit 
analysiert werden und so modifiziert werden, dass sie, wenn sie 
aufgerufen werden, jeweils einer zentralen Stelle die verbratene 
Rechenleistung mitteilen. Wenn auch Interrupts erfasst werden sollen, 
müsste das ganze auch noch synchronisiert werden.

Um was geht es denn in Deinem Speziellen Fall? - Oder war das nur 
allgemein gefragt?

@top: Dafür müsste das Prgramm aber so strukturiert sein, dass es so 
etwas wie ein Idle gibt, bzw. dieses (z.B. per Callback) erfassbar ist.

von Werner (Gast)


Lesenswert?

max sd schrieb:
> Wie ist das zu lösen(Ich programmiere in C)?

Immer, wenn der µC nicht in einer Leerlaufschleife rumrennt, die LED 
anschalten.
Statt einer LED ist es günstiger, das Signal vom Ausgangspin auf einen 
Tiefpass zu schicken. Dann hast du den Auslastungsgrad als 
Analogspannung zur Verfügung. Ohne Vergleichswert die LED-Helligkeit zu 
schätzen, dürfte arg ungenau sein.

von Helmut L. (helmi1)


Lesenswert?

Der uC ist im Prinzip immer zu 100% ausgelastet.
Selbst Daeumchendrehen und aus dem Fenster kucken ist eine sinnvolle 
Beschaeftigung (aus CPU sicht) :=)

von Roland P. (pram)


Lesenswert?

> kennt sicher jeder vom
> Computer, da ist vorne auch eine LED, die mit einer je nachdem wie hoch
> die benötigte Rechenleistung ist, mit einer recht hohen Frequenz
> blinkt

Welche LED? die HDD LED? Diese hat mit der Rechenleistung nichts zu tun.

Man kann den uC natürlich in den Sleep-Mode setzen und über die Zeit die 
er darin verbringt bzw nicht verbringt die Auslastung bestimmen

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

da musst du erst mal festlegen, was an deiner Software Arbeit ist und 
was nicht, denn irgendwas macht der Prozessor ja immer. Dann musst du 
beim Eintritt in eine arbeitende Prozedur die Led einschalten usw.

Gruss Reinhard

von max sd (Gast)


Lesenswert?

> Welche LED? die HDD LED? Diese hat mit der Rechenleistung nichts zu tun.

Nein natürlich nicht die HDD Led, die Frage galt ja dem Prozessor. 
Zumindest mein DELL hat sogar 4 LEDs für jeden Prozessorkern eine LED 
und zusätzlichen noch eine HDD LED und auch mein HP hat einen HDD und 
eine Prozessor LED. ;)

> Dann musst du beim Eintritt in eine arbeitende Prozedur die Led einschalten usw.

Danke! Werde mir mal anschauen ob das so funktioniert!

von Jan H. (jan_h74) Flattr this


Lesenswert?

Ich zaehle einfach die durchgange in Main/Zeit (Variable hochzaehlen in 
Main, in Zeitinterrupt auslesen und resetten). Das gibt mir eine idee 
von die Auslastung. Natulich ist das nicht jeden Mal identisch wegend 
Interrupts / Programablauf. Aber die Mittelwert gibt eine gute Idee von 
wie gut/schnell das ganse Lauft. Und die min Wert gibt eine idee von 
max. Reaction-zeit when du Eingange pollt.

von Coder (Gast)


Lesenswert?

Vielleicht unterstützt deine Toolchain einen Profiler.

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.