Sparrow Online Assembler: Erste Schritte

Die Tage erreichen mich einige Rückmeldungen zum Online ASM Compiler für den Sparrow. Eine gute Gelegenheit ein paar Unklarheiten zu beseitigen und ein neues Konzept für einen eingebetteten Compiler zu testen. Das Konzept verfolgt das Ziel interaktiver Lerneinheiten. Die Vision ist ein Online Programmierkurs auf Basis der Cheepit Technologie.
Burkhard Kainka ist beim Versuch ein Beispiel "blink" aus seinem Lernpaket "Mikrocontroller" zu testen auf ein paar Probleme gestoßen. Sein Beispiel dient uns nun als Einstiegsbeispiel. Vielen Dank dafür.
Was muss ich bei der Syntax beachten?
Der Online ASM Compiler setzt als Assembler den gavrasm ein. Ein Open Source AVR Assembler von Gerhard Schmidt. Die Syntax und der Funktionsumfang sind auf der Projektseite zu finden.
Die Liste aller AVR Befehle findet Ihr im AVR Instruction Set von Atmel. Nicht alle Befehle werden von jedem AVR Controller unterstützt. Die verfügbaren Befehle sind stets im jeweiligen Datenblatt des Controllers aufgelistet. Hier das Datenblatt des ATtiny13a.
Wir programmieren einen Gegentaktblinker
Die Anwendung unterteilt sich in drei Bereiche. Am Anfang werden die Ausgänge initialisiert. Im mittleren Teil (Schleife) werden abwechselnd die beiden LEDs ein- und ausgeschaltet. Am Ende befindet sich eine verschachtelte Warteschleife die zwischen den Schaltvorgängen aufgerufen wird. Damit ist die Blinkfrequenz gut sichtbar. Zur Erinnerung LED 1 hängt zwischen PB1 und Masse (leuchtet also wenn PB1 "high ist) und LED 2 zwischen PB3 und PB4 (leuchtet wenn PB3 "low" und PB4 "high" ist).
Quellcode ändern
Mit einer einfachen Änderung lassen wir nun beide LEDs gleichzeitig aufblinken. Dazu muss der Code an zwei Stellen geändert werden:
• in Zeile 8 laden wir eine 10 (00001010) und setzten somit PB1 und PB3 auf "high"
• in Zeile 11 schalten wir beide LEDs wieder aus indem wir eine 0 (00000000) laden
Programmfehleranzeige
Sollte sich bei der Entwicklung mal der Fehlerteufel einschleichen wird vom Compiler eine Fehlermeldung erzeugt. Diese erscheint mit Angabe der Zeile und Fehlerart unterhalb des Textfeldes. Die jeweilige Fehlerzeile wird im Editor "rot" makiert.
Links und Referenzen: