Das lernst du heute
- Werte pro Minute ablegen
- Tagesverlauf
- Spitzen erkennen
Gestern Nacht ist der Akku leer gelaufen. Wann hat der Verbrauch angezogen – und wie hoch war die Spitze? Eine Anzeige zeigt nur den Moment. Für den Verlauf braucht der Chip ein Gedächtnis, und das ist der Stack.
Einmal pro Minute
Ein Takt dauert 0,5 Sekunden, eine Minute also 120 Takte. Ein Zähler entscheidet, wann gemessen wird:
add takt takt 1
blt takt TAKTE start
move takt 0
Solange der Zähler unter 120 liegt, springt der Chip gleich wieder zu start und wartet mit yield auf den nächsten Takt. Nur jeder 120. Durchlauf kommt bis zur Messung.
Ein Ringpuffer im Stack
Du kennst den Ringpuffer aus dem Messwert-Verlauf: poke schreibt an eine feste Adresse, die Position wandert eins weiter und springt mit mod am Ende zurück auf 0.
poke pos wert
add pos pos 1
mod pos pos PLAETZE
Mit 60 Plätzen hält der Puffer genau die letzte Stunde. Der Stack hat 512 Plätze – mit PLAETZE 480 wären es acht Stunden, eine ganze Schicht. Für einen ganzen Spieltag kannst du auch nur alle fünf Minuten messen.
Spitzen erkennen
Die Spitze ist das Maximum über alle Plätze. Den eigenen Stack liest du mit get und db:
suche:
get tmp db i
max spitze spitze tmp
add i i 1
blt i PLAETZE suche
Diese Schleife braucht 60 · 4 = 240 Befehle. Ein Takt erlaubt 128 – der Chip arbeitet einfach im nächsten Takt weiter. Das ist hier kein Problem, weil die Suche nur einmal pro Minute läuft und die Messwerte sich in der Zwischenzeit nicht ändern.
Ein NaN im Puffer vergiftet die Spitze: max mit NaN ergibt NaN, eine Stunde lang. Fehlt die Messung, legt der Chip deshalb 0 ab und zeigt auf der Verlaufsanzeige −1.
Was du daraus machst
Mit dem Verlauf siehst du, wann der Verbrauch steigt: beim Schichtbeginn, wenn der Ofen anläuft, wenn die Nacht kommt. Die Spitze sagt dir, wofür Akku und Kabel ausgelegt sein müssen – nicht für den Mittelwert, sondern für den schlimmsten Moment.
Schaubild
Übung
Aufgabe
Einmal pro Minute (120 Takte) liest der Chip PowerRequired des Analysators „Hauptnetz“, zeigt den Wert auf „Verlauf“ und legt ihn im Ringpuffer (60 Plätze) ab. „Spitze“ zeigt das Maximum über den ganzen Puffer. Fehlt der Analysator: „Verlauf“ zeigt −1, abgelegt wird 0.
Hinweise
Hinweis 1
Erst die Anzeige: select tmp ok wert -1, dann für den Puffer select wert ok wert 0.
Hinweis 2
Ablegen: poke pos wert, add pos pos 1, mod pos pos PLAETZE.
Hinweis 3
Suche: spitze und i auf 0, dann Schleife mit get tmp db i, max, add, blt.
Quiz
5 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator bestanden
- Quiz mit mindestens 60 % bestanden
Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.
Fehler in dieser Lektion melden
Zum Melden bitte anmelden. Anmelden