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
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.
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.
Der uC ist im Prinzip immer zu 100% ausgelastet. Selbst Daeumchendrehen und aus dem Fenster kucken ist eine sinnvolle Beschaeftigung (aus CPU sicht) :=)
> 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
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
> 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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.