Das lernst du heute
- Viele Ein/Aus-Zustände in einem Register
- Bits per Knopf umschalten
- Zustand anzeigen
Die Bitwoche endet mit einem Projekt, das du in jeder Basis gebrauchen kannst: einem Schalterregister. Vier Taster schalten vier Lampen um – ein Druck an, der nächste aus. Statt vier Register für vier Zustände zu verschwenden, steckt alles in einem.
Die Anlage
| Gerät | Prefab | Namen |
|---|---|---|
| vier Taster | StructureLogicButton | „Taste1“ bis „Taste4“ |
| vier Lampen | StructureWallLight | „Lampe1“ bis „Lampe4“ |
| LED-Anzeige | StructureConsoleLED5 | „Schalter“ |
Ein Taster meldet über Activate eine 1, solange er gedrückt ist.
Die Idee
Bit 0 gehört zu Taste 1 und Lampe 1, Bit 1 zu Taste 2 und Lampe 2 und so weiter. Pro Takt passiert dreierlei:
- Tasten einsammeln: Alle vier
Activate-Werte landen mitinsals Bits inneu. - Steigende Flanken finden: Gedrückt ist nur, was jetzt 1 ist und vorher 0 war:
neu and (not alt). Mitxorschaltest du genau diese Bits im Zustand um. - Ausgeben:
extholt jedes Bit wieder heraus und schaltet die passende Lampe, die Anzeige bekommt den ganzen Zustand als Zahl.
not tmp alt
and flanke neu tmp
xor zustand zustand flanke
move alt neu
Ohne die Flankenerkennung würde eine gedrückt gehaltene Taste die Lampe jeden Takt umschalten – sie flackert mit 2 Hz.
Teilziele
- Taste 1 schaltet Lampe 1 um: drücken an, nochmal drücken aus.
- Die Tasten sind unabhängig: Taste 2 und 4 schalten nur ihre eigenen Lampen.
- Die Anzeige zeigt den Zustand als Zahl: Lampe 2 und 4 an ergibt 2 + 8 = 10.
- Gedrückt halten schaltet nur einmal um.
ins neu tmp 1 1 setzt ein Bit an Stelle 1 in neu und lässt alle anderen Bits stehen. Den ersten Taster liest du deshalb direkt nach neu – das löscht die alten Bits von selbst.
Schaubild
Projektaufgabe
Aufgabe
Baue das Schalterregister: Vier Taster „Taste1“–„Taste4“ schalten die Lampen „Lampe1“–„Lampe4“ bei jedem Druck um. Der Zustand steckt in einem Register, die Anzeige „Schalter“ zeigt ihn als Zahl. Gedrückt halten schaltet nur einmal.
Teilziele
- Teilziel 1: Taste 1 schaltet Lampe 1 um
- Teilziel 2: Tasten sind unabhängig
- Teilziel 3: Anzeige zeigt den Zustand
- Teilziel 4: Halten schaltet nur einmal
Hinweise
Hinweis 1
Taste 1 direkt nach neu lesen, Taste 2 bis 4 mit ins neu tmp 1 1, ins neu tmp 2 1, ins neu tmp 3 1.
Hinweis 2
Flanke: not tmp alt, and flanke neu tmp, xor zustand zustand flanke, dann move alt neu.
Hinweis 3
Ausgabe: ext tmp zustand 0 1 für Lampe 1 und so weiter.
Quiz
3 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