Aktuell kommt es zu Probleme mit dem Email Versand dies wird schnellstmöglich behoben.

stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. yield und die Hauptschleife

Kapitel 2 · Geräte & Schleife

yield und die Hauptschleife

Takte, das 128-Befehle-Limit und warum jedes Programm eine Endlosschleife braucht.

Lektion 6 von 18 9 Min.

Die Programme bisher liefen einmal durch und waren fertig. Für eine Steuerung ist das nutzlos: Die Temperatur ändert sich ständig, also muss der Chip immer wieder messen.

Wenn der Chip hinten rausläuft

Erreicht der Chip das Ende des Programms, bleibt er für immer stehen – ohne Fehlermeldung, ohne Lampe. Er startet auch nicht von selbst neu. Erst Chip raus und wieder rein weckt ihn auf. Deshalb endet jedes echte Programm mit einem Sprung zurück an den Anfang:

start:
yield
l r0 d0 Temperature
sub r0 r0 273.15
s d1 Setting r0
j start

start: ist ein Label, eine Sprungmarke. j start springt dorthin. Mehr über Labels in der nächsten Lektion.

Takte und yield

Das Spiel rechnet in Takten von 0,5 Sekunden. Pro Takt führt der Chip höchstens 128 Befehle aus, dann wartet er auf den nächsten Takt. Gerätewerte ändern sich nur zwischen den Takten.

yield sagt: „Für diesen Takt bin ich fertig.“ Ohne yield dreht die Schleife 128 Befehle lang im Kreis und liest dabei immer wieder denselben Wert – das kostet nichts Sichtbares, ist aber sinnlos und macht Programme schwer vorhersagbar.

Tipp

Faustregel: Direkt hinter das Start-Label gehört ein yield. Dann läuft die Schleife genau einmal pro Takt.

sleep

sleep 5 wartet fünf Sekunden (nicht Takte) und ersetzt dann das yield. Praktisch für Blinklichter oder langsame Abläufe.

Schaubild

Takte und yield auf einer Zeitleiste Takt 0 · 0,0 s Takt 1 · 0,5 s Takt 2 · 1,0 s Takt 3 · 1,5 s 5 Befehle yield 5 Befehle yield 5 Befehle yield 128 Befehle ohne yield: Limit Gerätewerte ändern sich nur zwischen zwei Takten.
Pro Takt (0,5 s) führt der Chip höchstens 128 Befehle aus. yield beendet den Takt sofort, im nächsten geht es in der Zeile danach weiter.

Übung

Aufgabe

Mach aus der Temperaturanzeige eine Dauersteuerung: Die Anzeige an d1 soll die Temperatur des Sensors an d0 in °C zeigen – und zwar ständig, auch wenn sich der Wert ändert. Baue eine Endlosschleife mit yield.

Hinweise

Hinweis 1

Setz über die erste Befehlszeile ein Label, z. B. start: – allein auf seiner Zeile.

Hinweis 2

Darunter yield, ganz unten j start.

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall