Ein Chip, der nicht tut, was er soll, verrät selten warum. Diese Liste spart Stunden.
Laute Fehler
Das Gehäuse zeigt einen Fehlercode und die Zeile an. Die häufigsten:
| Fehler | Ursache |
|---|---|
UnrecognisedInstruction | Tippfehler im Befehl, falsche Großschreibung, Label nicht allein auf der Zeile |
IncorrectArgumentCount | Angabe vergessen – z. B. den Batchmodus bei lbn |
IncorrectLogicType | LogicType falsch geschrieben oder das Gerät kann ihn nicht |
DeviceNotFound | kein Gerät am Pin oder Gerät nicht im selben Datennetz |
IncorrectVariable | Name, den der Chip nicht kennt (alias/define/Label) |
Bei einem Laufzeitfehler bleibt der Chip auf der Zeile stehen und versucht sie jeden Takt neu.
Stille Fehler – die gemeinen
- Programmende ohne Schleife: Der Chip steht für immer, kein Fehler.
1e5: keine Zahl. Ein define damit wird still zu NaN.- Komma statt Punkt:
1,5ist 15. - Celsius statt Kelvin: 20 statt 293.15 – die Heizung läuft nie.
SumstattAverage: fällt erst mit dem zweiten Sensor auf.- NaN: Sensor weg, Name falsch – alle Vergleiche werden falsch.
- Label in relativem Sprung:
jr startspringt irgendwohin.
Werkzeuge
Der Prüfer im IC10-Coder findet die meisten Fallen schon beim Tippen: rote Wellen für Fehler, gelbe für Warnungen. Im Simulator kannst du mit Haltepunkten und Einzelschritt zuschauen, welche Zeile was tut, und Sensorwerte von Hand verändern.
Fehler einkreisen: Den Wert, dem du nicht traust, auf eine Anzeige oder mit s db Setting r0 aufs Gehäuse schreiben. Was der Chip wirklich sieht, ist oft überraschend.
Schaubild
Übung
Aufgabe
Dieser Chip soll die Wandheizung „Heizung“ einschalten, wenn es im Raum kälter als 20 °C ist – gemessen von zwei Gas-Sensoren, die beide „Raum“ heißen. Im Code stecken sechs Fehler. Finde und behebe sie. Der Prüfer unter dem Editor hilft dir bei einigen – aber nicht bei allen.
Hinweise
Hinweis 1
Drei Fehler zeigt der Prüfer rot an: Exponentschreibweise, Großschreibung beim LogicType und beim Befehl.
Hinweis 2
Zwei Sensoren mit gleichem Namen – welcher Batchmodus passt zu einer Temperatur?
Hinweis 3
Was passiert, wenn der Chip unten ankommt? Und wie oft pro Takt soll er messen?