Das lernst du heute
- Sltz, sgtz, slez, sgez, seqz, snez kennen
- Abweichungen vom Sollwert bewerten
- seqz als logisches Nicht
Bei einer Heizung interessiert dich selten die Temperatur selbst. Wichtig ist, wie weit sie vom Sollwert weg ist und in welche Richtung. Genau dafür gibt es eine eigene Gruppe von Set-Befehlen: Sie vergleichen einen Wert mit null.
Die sechs z-Befehle
| Befehl | Register = 1, wenn |
|---|---|
sltz r? a | a < 0 |
sgtz r? a | a > 0 |
slez r? a | a ≤ 0 |
sgez r? a | a ≥ 0 |
seqz r? a | a = 0 |
snez r? a | a ≠ 0 |
Sonst kommt 0 heraus. Das z steht für zero. Gegenüber slt r1 r0 0 sparst du die Null und ein paar Zeichen – bei 4096 Zeichen pro Chip zählt das irgendwann.
Erst die Abweichung, dann der Vergleich
l r0 d0 Temperature
sub r0 r0 293.15 # Abweichung von 20 C
sltz r1 r0 # 1 = zu kalt
sgtz r2 r0 # 1 = zu warm
r0 ist jetzt negativ, wenn es zu kalt ist, positiv, wenn es zu warm ist, und genau null nur im seltenen Fall exakt 20 °C. Die Abweichung kannst du gleich auf eine Anzeige schreiben: Ein Wert von −2,5 sagt mehr als 290,65.
Ein kleines Band einbauen
Würde die Heizung bei jeder winzigen Abweichung anspringen, schaltet sie dauernd. Verschieb die Grenze einfach mit einer Addition:
add r1 r0 1 # erst unter -1 negativ
sltz r1 r1 # Heizung an unter 19 C
sub r2 r0 1 # erst ueber +1 positiv
sgtz r2 r2 # Kuehlung an ueber 21 C
Zwischen 19 und 21 °C bleibt beides aus. Das ist noch keine echte Hysterese mit Gedächtnis – die kommt in Woche 7 –, aber für viele Räume reicht es.
seqz als „nicht“
Bei Werten, die nur 0 oder 1 sind, dreht seqz den Wert um: aus 1 wird 0, aus 0 wird 1. snez macht umgekehrt aus jeder Zahl ungleich null eine saubere 1.
seqz r3 r1 # 1, wenn die Heizung NICHT laeuft
Die Sprungbefehle aus Woche 3 gibt es genauso gegen null: bltz, bgtz, blez, bgez, beqz, bnez. Die z-Set-Befehle sind ihre sprungfreien Geschwister.
Liefert der Sensor NaN, sind sltz und sgtz beide 0 – Heizung und Kühlung bleiben dann aus.
Schaubild
Übung
Aufgabe
An d0 hängt ein Gas-Sensor, an d1 eine Wandheizung, an d2 ein Wandkühler und an d3 eine LED-Anzeige. Sollwert sind 20 °C (293,15 K).
r0= Abweichung vom Sollwert, die Anzeige and3zeigt sie- Heizung an, wenn die Abweichung unter −1 liegt (kälter als 19 °C)
- Kühler an, wenn die Abweichung über +1 liegt (wärmer als 21 °C)
- Benutze die z-Befehle, keine bedingten Sprünge – nur
j startfür die Schleife
Hinweise
Hinweis 1
Für die Heizung: erst add r1 r0 1, dann sltz r1 r1.
Hinweis 2
Für den Kühler genauso mit sub und sgtz.
Hinweis 3
Die Anzeige bekommt einfach s d3 Setting r0.
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