Das lernst du heute
- Breqz, brnez, brltz, brgtz, brlez, brgez und brnan
- Zeile überspringen
Gestern hast du zwei Werte relativ verglichen. Oft ist einer davon null: Ist die Abweichung negativ? Ist der Zähler abgelaufen? Ist der Messwert NaN? Dafür gibt es die z-Formen.
Die Familie gegen null
| Befehl | springt um n Zeilen, wenn |
|---|---|
breqz a n | a = 0 |
brnez a n | a ≠ 0 |
brltz a n | a < 0 |
brgtz a n | a > 0 |
brlez a n | a ≤ 0 |
brgez a n | a ≥ 0 |
brnan a n | a ist NaN |
brnan ist das relative Gegenstück zu bnan. Ein brnanz oder bnanz gibt es nicht.
Eine Zeile überspringen
Das häufigste Muster: Ein Standardwert steht vorn, eine Zeile setzt ihn um, und der relative Sprung entscheidet, ob diese Zeile läuft.
sub abw ZIEL druck # positiv = zu wenig Druck
move modus Vent.Inward # Standard: absaugen
brlez abw 2 # nicht zu wenig: Zeile auslassen
move modus Vent.Outward # zu wenig: einblasen
Mit brnan sicherst du einen ganzen Block ab. Der Abstand reicht dann bis hinter den Block:
move an 0
brnan druck 3 # kein Messwert: zwei Zeilen auslassen
sub abw ZIEL druck
move an 1
Erst rechnen, dann gegen null prüfen
Die z-Formen spielen ihre Stärke aus, wenn du vorher die Abweichung bildest, etwa sub abw ziel ist. Danach entscheidet nur noch das Vorzeichen. Es ist dasselbe Prinzip wie bei den Set-Befehlen gegen null aus Woche 4.
Bei NaN springt kein Vergleich, auch nicht brgez oder brlez. Nur brnan springt. Steht die unsichere Aktion in der übersprungenen Zeile, ist das gut. Steht sie davor, läuft sie bei NaN.
Schreib bei jedem relativen Sprung in den Kommentar, wohin er führt, etwa # -> sbn. Wer den Code später ändert, sieht dann, welcher Abstand mitwandern muss.
Mode schreibt der Chip nur, wenn er sich ändert: Jedes Schreiben, auch mit demselben Wert, setzt bei der aktiven Lüftung die Zieldrücke auf ihre Grundwerte zurück (Tag 51). breqz alt 2 überspringt dann genau die eine Zeile. Die drei Sprünge davor landen auf dem Kommentar und laufen von dort in diesen Block.
Schaubild
Übung
Aufgabe
Gassensor „Lager“ und aktive Lüftung „Lagerlueftung“ (StructureActiveVent). Ziel: 100 kPa, ±5 kPa ohne Eingriff.
- unter 95 kPa:
On1,ModeVent.Outward(einblasen) - über 105 kPa:
On1,ModeVent.Inward(absaugen) - dazwischen und bei Sensorausfall:
On0
Benutze nur relative Sprünge gegen null (breqz … brgez, brnan), keine absoluten Vergleichssprünge.
Hinweise
Hinweis 1
brnan druck … springt bei Ausfall bis zur ersten sbn-Zeile – zähl die Zeilen genau.
Hinweis 2
Abweichung: sub abw ZIEL druck. Ob sie größer als das Band ist: abs, sub … BAND, dann brlez.
Hinweis 3
Richtung: brgtz abw 2 überspringt move modus Vent.Inward, wenn zu wenig Druck da ist.
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