Das lernst du heute
- Schritt im Register
- Weiterschalten bei Bedingung
- Ablauf neu starten
Das Hangartor soll nicht einfach aufspringen. Erst blinkt eine Warnlampe, dann öffnet das Tor, bleibt eine Weile offen und schließt wieder, während die Lampe noch warnt. Das ist ein Ablauf: mehrere Schritte nacheinander, jeder mit eigener Aufgabe.
Der Schritt steht in einem Register
Jeder Schritt bekommt eine Nummer. Ein Register merkt sich, in welchem Schritt der Ablauf gerade ist:
| Schritt | Was passiert | weiter, wenn … |
|---|---|---|
| 0 | Ruhe, Tor zu | der Knopf gedrückt wird |
| 1 | Warnlampe an | VORWARN Takte vorbei sind |
| 2 | Tor offen | OFFENZEIT Takte vorbei sind |
| 3 | Tor zu, Lampe noch an | VORWARN Takte vorbei sind |
Nach Schritt 3 geht es zurück zu Schritt 0. Damit ist der Ablauf bereit für den nächsten Start.
Verzweigen nach dem Schritt
Am Anfang jedes Durchlaufs springt der Chip zum Code des aktuellen Schritts:
beq schritt 1 s1
beq schritt 2 s2
beq schritt 3 s3
# hier steht Schritt 0
Jeder Schrittblock setzt seine Ausgänge und prüft seine Bedingung. Ist sie erfüllt, schreibt er die nächste Nummer und setzt die Zeit zurück:
s1:
move warnen 1
blt zeit VORWARN ausgabe # noch nicht fertig
move schritt 2
move zeit 0
j ausgabe
Am Ende landen alle Blöcke bei ausgabe:. Dort schreibt der Chip die Geräte, genau einmal pro Durchlauf.
Zeit im Schritt
Ein Zähler zeit läuft jeden Takt hoch und wird bei jedem Schrittwechsel auf 0 gesetzt. So weiß jeder Schritt, wie lange er schon dauert, und du brauchst keinen eigenen Zähler pro Schritt.
Vergiss das j ausgabe am Ende eines Blocks nicht. Sonst läuft der Chip in den nächsten Block hinein und erledigt zwei Schritte in einem Takt.
Schritt 0 ist der Ruhezustand: Tor zu, Lampe aus. Im Spiel behält das Register nach dem Aufspielen seinen alten Wert. Setz schritt vor dem Start-Label mit move auf 0, dann beginnt der Ablauf immer sauber.
Schaubild
Übung
Aufgabe
Baue den Ablauf für das Hangartor aus der Tabelle oben.
- Knopf „Tortaster“ (
StructureLogicButton): Die Flanke startet den Ablauf, aber nur in Schritt 0. - Tor „Hangartor“ (
StructureCompositeDoor, WertOpen), Blinklicht „Torwarnung“. - Nach Schritt 3 zurück zu Schritt 0, ein neuer Druck startet den Ablauf von vorn.
- Fehlt der Knopf, bleibt alles in Ruhe.
Hinweise
Hinweis 1
Nach den Eingängen: beq schritt 1 s1, beq schritt 2 s2, beq schritt 3 s3. Was danach kommt, ist Schritt 0.
Hinweis 2
Jeder Block: Ausgänge setzen, blt zeit … ausgabe, sonst nächste Schrittnummer und move zeit 0.
Hinweis 3
Jeder Block endet mit j ausgabe – nur der letzte darf direkt ins Label laufen.
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