Das lernst du heute
- Register als Gedächtnis
- Flanken erkennen
- Letzten Wert vergleichen
Ein Sensor sagt dir, wie es jetzt ist. Oft willst du aber wissen, was sich geändert hat. Ist die Tür gerade aufgegangen? Ist der Druck seit dem letzten Takt gestiegen? Dafür braucht der Chip ein Gedächtnis, und das sind seine Register.
Register vergessen nichts
Ein Gerätewert wird jeden Takt neu gelesen. Ein Register behält seinen Wert, bis du ihn überschreibst. Kopierst du am Ende eines Durchlaufs den aktuellen Wert in ein zweites Register, steht dort im nächsten Takt der letzte Wert:
lbn offen TUER HASH("Lagertor") Open Average
# ... hier vergleichen ...
move alt offen # fuer den naechsten Takt merken
Flanken erkennen
Springt ein Signal von 0 auf 1, ist das eine steigende Flanke. Von 1 auf 0 ist es eine fallende Flanke. Für Werte, die nur 0 oder 1 sind, reicht ein Vergleich:
| Ereignis | Befehl |
|---|---|
| steigende Flanke | sgt flanke neu alt |
| fallende Flanke | slt flanke neu alt |
| irgendeine Änderung | sne flanke neu alt |
Die Flanke ist genau einen Takt lang 1. Steht die Tür eine Minute offen, zählt das trotzdem nur einmal. Das ist der Unterschied zwischen einem Zustand und einem Ereignis.
sgt flanke offen alt # gerade aufgegangen?
add zaehler zaehler flanke
move alt offen
Die Reihenfolge entscheidet. Kopierst du offen nach alt, bevor du vergleichst, sind beide gleich, und es gibt nie eine Flanke. Erst vergleichen, dann merken.
Den letzten Wert vergleichen
Dasselbe Prinzip funktioniert mit Messwerten. Steigt der Tankdruck oder fällt er?
sub aenderung druck altDruck # positiv = steigt
move altDruck druck
So erkennst du ein Leck, bevor der Druck eine Alarmgrenze erreicht.
Fällt der Sensor aus, landet NaN in alt. Jeder Vergleich mit NaN ist falsch, es gibt also keine falsche Flanke. Sobald der Sensor zurück ist, steht wieder eine echte Zahl in alt.
Im Spiel behalten Register ihren Wert auch dann, wenn du neuen Code aufspielst. Setz Zähler und Merker deshalb vor dem Start-Label mit move auf 0.
Übung
Aufgabe
Zähle, wie oft das Tor „Lagertor“ (StructureCompositeDoor) aufgeht, und zeig die Zahl auf der LED-Anzeige „Oeffnungen“.
- Jedes Öffnen zählt genau einmal, egal wie lange das Tor offen steht.
- Wird das Tor abgebaut, bleibt die Zahl stehen, und der Chip läuft ohne Fehler weiter.
Hinweise
Hinweis 1
sgt flanke offen alt ist 1, wenn das Tor jetzt offen ist und im letzten Takt zu war.
Hinweis 2
Addiere die Flanke auf den Zähler.
Hinweis 3
Erst danach move alt offen.
Quiz
4 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