Sparrow Online Assembler: Daten im EEPROM

Der Online ASM Compiler kann jetzt auch EEPROM-Images erstellen. Die Direktive ".ESEG" erzeugt nun das zugehörige Image und überträgt dieses nach der Programmierung des Programmspeichers in den EEPROM.
Wie geht das genau?
Mit der Direktive ".ESEG" (EEPROM Segment) geben wir dem Compiler die Information, dass die nachfolgenden Daten im EEPROM des Controllers abgelegt werden sollen. Mit der Direktive ".CSEG" (Codesegment) geben wir nach der Datendefinition den Hinweis, dass nun der Programmcode folgt. Wird das EEPROM Segment ganz am Ende (also nach dem Programmcode) definiert kann auf das Schlüsselwort ".CSEG" verzichtet werden. Zur Erläuterung dient der bekannte Blinker aus dem Online ASM Compiler Howto.
Wir programmieren einen Blinker der zählen kann.
In der Anwendung wird zuerst das EEPROM Segment angelegt. Es wird ein Byte mit dem Inhalt "10" definiert. Im Ergebnis steht nun an der ersten Stelle im EEPROM die Zahl 10. Diese Zahl soll unser Wert für die Zählschleife sein. Der Blinker soll 10 mal blinken.
In der Sektion "Anfang" wird im Register r30 die Leseadresse für die Funktion "LeseEEPROM" geladen. Der EEPROM hat einen Adressbereich von 0-63. Unser gespeichertes Byte an der 1. Stelle hat also die Adresse "0". Mit dem Aufruf der Funktion "LeseEEPROM" wird nun das Byte ausgelesen und in Register r16 abgelegt. Da dieses Register bereits in der Warteschleife verwendet wird kopieren wir den Inhalt in das Register r18.
Mit jedem Schleifendurchgang wird von r18 eins abgezogen bis schließlich der Wert 0 erreicht ist und die Schleife endet. Das Programm kann nach Ablauf mit dem Resetbutton (siehe Kontrollfeld des Online ASM Compiler) neu gestartet werden.
Links und Referenzen: