Das lernst du heute
- Lampe im Takt blinken lassen
- Blinken per Hebel freigeben
- Blinktempo über define einstellen
Über der Schleusentür soll eine Lampe blinken, solange jemand den Hebel „Warnung“ umgelegt hat. Mit sleep ginge das, aber dann würde der Chip den Hebel nur alle paar Sekunden bemerken. Du baust den Blinker deshalb mit einem Takt-Zähler.
Ein kleiner Vorgriff: define
Das Tempo soll man später leicht ändern können, ohne im Code zu suchen. Dafür gibt es define:
define TAKTE 4 # Takte je Phase (4 Takte = 2 s)
Überall, wo danach TAKTE steht, setzt der Chip 4 ein. Ein define belegt kein Register. Ausführlich kommt define in Woche 5 – heute reicht diese eine Zeile ganz oben.
Der Ablauf
- Hebel lesen. Ist er nicht umgelegt: Zähler und Lampe auf 0, zurück an den Anfang.
- Sonst den Zähler um eins erhöhen.
- Hat der Zähler
TAKTEerreicht: Zähler auf 0 und die Lampe umschalten. - Lampe schreiben, zurück an den Anfang.
Umschalten heißt: aus 0 wird 1, aus 1 wird 0. Das kennst du vom Notlicht:
sub r2 1 r2 # Lampenzustand umdrehen
Teilziele
- Hebel aus: Die Lampe ist aus.
- Hebel an: Die Lampe ist zuerst
TAKTETakte aus, dannTAKTETakte an, und so weiter. - Hebel zurück: Die Lampe geht sofort aus.
- Hebel wieder an: Das Blinken beginnt von vorn mit der Aus-Phase.
Mit TAKTE = 4 ist die Lampe zwei Sekunden an und zwei Sekunden aus.
Setz Zähler und Lampenzustand zurück, wenn der Hebel aus ist. Sonst startet das Blinken beim nächsten Umlegen mitten in einer Phase.
Der Zähler lebt in einem Register. Nimmst du den Chip heraus und setzt ihn wieder ein, stehen alle Register auf 0 – der Blinker beginnt von vorn.
Schaubild
Projektaufgabe
Aufgabe
d0 ist die Warnlampe, d1 der Hebel „Warnung“.
define TAKTE 4legt die Länge einer Phase in Takten fest.- Hebel umgelegt: Lampe zuerst
TAKTETakte aus, dannTAKTETakte an, immer weiter. - Hebel nicht umgelegt: Lampe aus, Zähler zurück auf 0.
Kein sleep – der Hebel soll jeden Takt gelesen werden.
Teilziele
- Teilziel 1: Hebel aus – Lampe aus
- Teilziel 2: Lampe blinkt im Takt
- Teilziel 3: Hebel zurück – Lampe sofort aus
- Teilziel 4: Neustart beginnt mit der Aus-Phase
Hinweise
Hinweis 1
Drei Register: r0 Hebel, r1 Zähler, r2 Lampenzustand.
Hinweis 2
blt r1 TAKTE weiter überspringt das Umschalten, solange die Phase läuft.
Hinweis 3
Im Zweig für „Hebel aus“ r1 und r2 auf 0 setzen.
Quiz
2 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Alle Teilziele des Projekts 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