02.05.2013 Aufrufe

beginner_de

beginner_de

beginner_de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Avr-Asm-Tutorial S. 26<br />

5 Struktur von AVR-Assembler-Programmen<br />

In diesem Abschnitt wer<strong>de</strong>n die Strukturen vorgestellt, die für Assembler-Programme typisch sind<br />

und sich immer wie<strong>de</strong>r wie<strong>de</strong>rholen. Dazu gehören Kommentare, die Angaben im Kopf <strong>de</strong>s Programmes,<br />

<strong>de</strong>r Co<strong>de</strong> zu Beginn <strong>de</strong>s eigentlichen Programmes und <strong>de</strong>r Aufbau von Programmen.<br />

5.1 Kommentare<br />

Das wichtigste an Assemblerprogrammen sind die Kommentare. Ohne Kommentierung <strong>de</strong>s geschriebenen<br />

Co<strong>de</strong>s blickt man schon nach wenigen Tagen oft nicht mehr durch, wofür das Programm<br />

gut war o<strong>de</strong>r was an dieser Stelle <strong>de</strong>s Programmes eigentlich warum getan wird.<br />

Man kann natürlich auch ohne Kommentare Programme schreiben, vor allem wenn man sie vor an<strong>de</strong>ren<br />

und vor sich selbst geheim halten will. Ein Kommentar beginnt mit einem Semikolon. Alles,<br />

was danach in dieser Zeile folgt, wird vom Übersetzungsprogramm, <strong>de</strong>m Assembler, einfach ignoriert.<br />

Wenn man mehrere Zeilen lange Kommentare schreiben möchte, muss man eben je<strong>de</strong> weitere<br />

Zeile mit einem Semikolon beginnen.<br />

So sieht dann z.B. <strong>de</strong>r Anfang eines Assemblerprogrammes z.B. so aus:<br />

;<br />

; Klick.asm, Programm zum Ein- und Ausschalten eines Relais alle zwei Sekun<strong>de</strong>n<br />

; Geschrieben von G.Schmidt, letzte Än<strong>de</strong>rung am 6.10.2001<br />

;<br />

Kommentieren kann und soll man aber auch einzelne Abschnitte eines Programmes, wie z.B. eine<br />

abgeschlossene Routine o<strong>de</strong>r eine Tabelle. Randbedingungen wie z.B. die dabei verwen<strong>de</strong>ten Register,<br />

ihre erwarteten Inhalte o<strong>de</strong>r das Ergebnis nach <strong>de</strong>r Bearbeitung <strong>de</strong>s Teilabschnittes erleichtern<br />

das spätere Aufsuchen von Fehlern und vereinfachen nachträgliche Än<strong>de</strong>rungen. Man kann aber<br />

auch einzelne Zeilen mit Befehlen kommentieren, in<strong>de</strong>m man <strong>de</strong>n Rest <strong>de</strong>r Zeile mit einem Semikolon<br />

vor <strong>de</strong>m Assembler abschirmt und dahinter alles mögliche anmerkt:<br />

LDI R16,0x0A ; Hier wird was gela<strong>de</strong>n<br />

MOV R17,R16 ; und woan<strong>de</strong>rs hinkopiert<br />

5.2 Angaben im Kopf <strong>de</strong>s Programmes<br />

Den Sinn und Zweck <strong>de</strong>s Programmes, sein Autor, <strong>de</strong>r Revisionsstand und an<strong>de</strong>re Kommentare haben<br />

wir schon als Bestandteil <strong>de</strong>s Kopfes i<strong>de</strong>ntifiziert. Weitere Angaben, die hier hin gehören, sind<br />

<strong>de</strong>r Prozessortyp, für <strong>de</strong>n die Software geschrieben ist, die wichtigsten Konstanten (zur übersichtlichen<br />

Än<strong>de</strong>rung) und die Festlegung von errinnerungsför<strong>de</strong>rn<strong>de</strong>n Registernamen.<br />

Der Prozessortyp hat dabei eine beson<strong>de</strong>re Be<strong>de</strong>utung. Programme laufen nicht ohne Än<strong>de</strong>rungen<br />

auf je<strong>de</strong>m Prozessortyp. Nicht alle Prozessoren haben <strong>de</strong>n gleichen Befehlssatz, je<strong>de</strong>r Typ hat seine<br />

typische Menge an EEPROM und SRAM, usw. Alle diese Beson<strong>de</strong>rheiten wer<strong>de</strong>n in einer beson<strong>de</strong>ren<br />

Kopfdatei (hea<strong>de</strong>r file) festgelegt, die in <strong>de</strong>n Co<strong>de</strong> importiert wird. Diese Dateien heißen je nach<br />

Typ z. B. 2323<strong>de</strong>f.inc, 8515<strong>de</strong>f.inc, etc. und wer<strong>de</strong>n vom Hersteller zur Verfügung gestellt.<br />

Es ist guter Stil, mit dieser Datei sofort nach <strong>de</strong>m Kommentar im Kopf zu beginnen. Sie wird folgen<strong>de</strong>rmaßen<br />

eingelesen:<br />

.NOLIST ; Damit wird das Auflisten <strong>de</strong>r Datei abgestellt<br />

.INCLUDE "C:\avrtools\appnotes\8515<strong>de</strong>f.inc" ; Import <strong>de</strong>r Datei<br />

.LIST ; Auflisten wie<strong>de</strong>r anschalten

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!