sgt r1 r0 303.15 – was war nochmal r1? Und warum 303.15? In drei Wochen weiß das niemand mehr. Zwei Befehle schaffen Ordnung.
define: Namen für feste Zahlen
define GRENZE 303.15 # 30 C
Überall, wo danach GRENZE steht, setzt der Chip 303.15 ein. Ein define kostet kein Register und wird nie verändert. Ideal für Sollwerte, Schwellen und später für Gerätetypen.
alias: Namen für Register und Pins
alias temp r0
alias sensor d0
Jetzt darfst du temp statt r0 und sensor statt d0 schreiben. Ein alias auf einen Pin erscheint übrigens auch an den Schrauben des Gehäuses.
Der Aufbau, der sich bewährt hat
# --- Hitzewarnung ---
# --- 1. Einstellungen ---
define GRENZE 303.15 # 30 C
# --- 2. Register und Geraete ---
alias sensor d0
alias licht d1
alias temp r0
alias heiss r1
# --- 3. Hauptschleife ---
start:
yield
l temp sensor Temperature
sgt heiss temp GRENZE
s licht On heiss
j start
Erst define, dann alias, dann die Hauptschleife mit yield. Jede Zahl, die man später einstellen will, steht oben mit Kommentar – im Rumpf stehen nur noch Namen.
Kommentare zählen voll zum 4096-Zeichen-Limit. Kurze, treffende Kommentare schlagen lange Prosa. Notfalls hilft die „Spielfassung“ im IC10-Coder.
Ein define-Wert darf eine Zahl, eine Konstante oder HASH("…") sein – aber kein anderer define-Name. Das Spiel setzt dann still NaN ein.
Schaubild
Übung
Aufgabe
Der Code unten funktioniert, ist aber kaum lesbar. Bau ihn um, ohne das Verhalten zu ändern:
- Die Grenze 303.15 bekommt ein
definemit Kommentar. - Jedes benutzte Register bekommt einen
alias. - Im Rumpf steht keine rohe Zahl 303.15 und kein nacktes
r0/r1mehr.
Hinweise
Hinweis 1
define GRENZE 303.15 # 30 C ganz oben.
Hinweis 2
Danach alias temp r0 und alias heiss r1 – dann im Rumpf r0 durch temp und r1 durch heiss ersetzen.
Hinweis 3
Die Pins dürfen auch einen alias bekommen: alias sensor d0.