17.09.2013 Aufrufe

Assembler und AVR Studio

Assembler und AVR Studio

Assembler und AVR Studio

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.

<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Teil 201 - Experimentierboards<br />

1 Experimentierboards zum Testen <strong>und</strong> Programmieren von <strong>AVR</strong>-Mikrocontroller<br />

1.1 Mit welchen Mitteln <strong>AVR</strong>-Mikrocontroller programmiert werden<br />

1.2 Starterkit STK500<br />

1.3 Entwicklungs-Tool <strong>AVR</strong> Dragon<br />

1.4 ATM18-Controllermodul <strong>und</strong> ATM18-Testboard<br />

1.5 <strong>AVR</strong>-ALE-Testboard<br />

Teil 202 - ISP-Programmieradapter<br />

2 ISP-Programmieradapter<br />

2.1 ISP Bezogen auf die verschiedenen Schnittstellen<br />

2.1.1 Serielle Schnittstelle<br />

2.1.2 Parallele Schnittstelle<br />

2.1.3 USB-Schnittstelle<br />

2.2 CC2-<strong>AVR</strong>-Programmer alias USBprog<br />

2.2.1 Aufbau<br />

2.2.2 Arbeitsweise<br />

2.2.3 Firmware-Änderung<br />

Teil 203 - <strong>AVR</strong>-ALE-Testboard<br />

3 Beschreibung des <strong>AVR</strong>-ALE-Testboard<br />

3.1 Schaltungsaufbau<br />

3.2 Stromversorgung<br />

3.3 Einsatz verschiedener <strong>AVR</strong>-Mikrocontroller<br />

3.4 Anzahl LEDs <strong>und</strong> Tasten<br />

3.5 LCD-Interface <strong>und</strong> 20x4-LCD<br />

3.5.1 Erzeugung des Enable-Signals für das LCD<br />

3.5.2 LCD-Backlight<br />

3.6 Ansteuerung von Relais<br />

3.7 RS-232-Schnittstelle<br />

3.8 USART-Testboard-Schnittstelle<br />

Teil 204 - <strong>AVR</strong> <strong>Studio</strong><br />

4 Einsatz des <strong>AVR</strong> <strong>Studio</strong><br />

4.1 <strong>AVR</strong> <strong>Studio</strong> installieren<br />

4.2 Testboard <strong>und</strong> Programmer zusammenschalten<br />

4.2.1 Treiber <strong>AVR</strong>ISP mkII neu installieren<br />

4.3 Starten von <strong>AVR</strong> <strong>Studio</strong><br />

4.3.1 <strong>AVR</strong> <strong>Studio</strong> <strong>und</strong> CC2-<strong>AVR</strong>-Programmer<br />

4.3.2 Mikrocontroller-Einstellungen im <strong>AVR</strong> <strong>Studio</strong><br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

5 <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

5.1 Der Übersetzer (<strong>Assembler</strong>)<br />

5.2 Ein neues Projekt erzeugen<br />

5.2.1 Der Projekt-Bereich<br />

5.2.2 Bearbeiten der <strong>Assembler</strong>datei<br />

5.2.3 Assemblieren des Quell-Codes<br />

5.3 Simulation des Codes<br />

5.3.1 Programmausführung im Einzelschrittverfahren<br />

5.3.2 Debugger-Stopp-Punkte<br />

5.4 Verändern des Programmtextes<br />

Tools_205 03.06.2013 Seite 1 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

5.4.1 Überwachen von Variablen<br />

5.4.2 Anzeigen der Prozessordetails<br />

5.4.3 Speichern des Projekts<br />

5.5 Erzeugen eines weiteren ASM-Projektes im Schnelldurchgang<br />

5.6 Flashen eines ASM-Programms in ein Mikrocontroller ATmega88<br />

Teil 206 - C-Compiler <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

6 CodeVision<strong>AVR</strong> C-Compiler <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

6.1 CodeVision<strong>AVR</strong> C-Compiler installieren<br />

6.2 Erzeugen eines C-Projektes<br />

6.2.1 Ein neues Projekt beginnen<br />

6.2.2 Ein C-Projekt generieren<br />

6.3 Einbinden von <strong>AVR</strong> <strong>Studio</strong> in den CV<strong>AVR</strong><br />

6.4 <strong>AVR</strong> <strong>Studio</strong> Debugger für CV<strong>AVR</strong><br />

6.5 Flashen eines C-Programms in ein Mikrocontroller ATmega88<br />

Teil 207 - Editor - UltraEdit<br />

7 Editor - UltraEdit<br />

7.1 Kopf- <strong>und</strong> Fuss-Zeile<br />

7.1.1 Einstellungen für <strong>Assembler</strong>-Programme<br />

7.1.2 Einstellungen für C-Compiler-Programme<br />

7.2. Einträge in das WORDFILE.TXT<br />

7.2.1 Gr<strong>und</strong>sätzliches Format<br />

7.2.2 Syntax Befehle<br />

7.3 Wortsammlung für <strong>AVR</strong>-<strong>Assembler</strong><br />

7.4 Wortsammlung für CodeVision<strong>AVR</strong> C-Compiler<br />

Hinweis<br />

Externe Anschaltungen <strong>und</strong> Hardware-Erweiterungen werden in der Gruppe 400 - ASM-Projekte <strong>und</strong><br />

in der Gruppe 600 - C-Projekte detailliert beschrieben.<br />

Tools_205 03.06.2013 Seite 2 von 31


Vorbemerkung<br />

<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Nichts ist vollkommen - <strong>und</strong> nichts ist endgültig! So auch nicht dieses Tutorial! Deshalb bitte immer<br />

erst nach dem neuesten Datum schauen. Vielleicht gibt es wieder etwas Neues oder eine Fehlerbereinigung<br />

oder eine etwas bessere Erklärung. Wer Fehler findet oder Verbesserungen vorzuschlagen<br />

hat, bitte melden (info@alenck.de).<br />

Immer nach dem Motto: Das Bessere ist Feind des Guten <strong>und</strong> nichts ist so gut, dass es nicht noch<br />

verbessert werden könnte.<br />

Bild-, Beispiel-, Form- <strong>und</strong> Tabellen-Nummern sind nach folgendem Schema aufgebaut, damit bei<br />

Einfügungen/Löschungen nicht alle Nummern wieder geändert werden müssen (hier bunt dargestellt):<br />

Darstellungsart Abschnitt-LfdNummer: Beschreibung allgemeines Schema<br />

Bild 5.1.4-02: Daten-Adress-Raum Benummerung eines Bildes<br />

Beispiel 5.1.4-03: EEPROM-Speicherung Benummerung eines Beispiels<br />

Form 5.1.3-01: Diemain-Funktion Benummerung einer Formdarstellung<br />

Tabelle 5.1.4-01: Schlüsselwörter vom CV<strong>AVR</strong> Benummerung einer Tabelle<br />

Gravierende Änderungen gegenüber der Vorversion<br />

1.<br />

Völlig neue Strukturierung in Gruppen <strong>und</strong> Teile, um das Tutorial umfassend ordnen zu können. Die<br />

Abschnitte in den Teilen sind weitgehend erhalten geblieben.<br />

Gruppenbezeichnung Kurzbezeichnung<br />

Gruppe 100: Technologie der <strong>AVR</strong>-8-Bit-Mikrocontroller Technologie<br />

Gruppe 200: Einsetzen von <strong>AVR</strong>-Tools Tools<br />

Gruppe 300: Arbeiten mit <strong>AVR</strong>-<strong>Assembler</strong> ASM-Programmierung<br />

3xx_Programm_yyyyy ASM-Programm-Beispiel<br />

Gruppe 400: <strong>AVR</strong>-ASM-Projekte ASM-Projekte<br />

4xx_Projekt_yyyyy ASM-Projekt-Bezeichnung<br />

Gruppe 500: CodeVision<strong>AVR</strong> C-Compiler C-Programmierung<br />

5xx_Programm_yyyyy C-Programm-Beispiel<br />

Gruppe 600: <strong>AVR</strong>-C-Projekte C-Projekte<br />

6xx_Projekt_yyyyy C-Projekt-Bezeichnung<br />

xx steht für die laufende Nummer innerhalb des Teils, in dem das Programm bzw. das Projekt erscheint<br />

<strong>und</strong> yyyyy steht für die Programm- bzw. Projekt-Kurz-Bezeichnung.<br />

2.<br />

Notwendige Änderungen auf Gr<strong>und</strong> Neuinstallation von Windows 7.<br />

3.<br />

Windows 7 machte eine Installation von CodeVision<strong>AVR</strong> V2.60 als Vollversion notwendig. Daraus<br />

leiten sich auch viele Änderungen im Detail für die C-Programmierung (Gruppe 500) ab.<br />

4.<br />

Neu-Installation von <strong>AVR</strong> <strong>Studio</strong> Vers. 4.19 unter Windows 7<br />

5.<br />

Zur Demonstration des Tools <strong>AVR</strong> <strong>Studio</strong> ist in Gruppe 200 eine Trennung in Teil 205 - <strong>Assembler</strong><br />

<strong>und</strong> <strong>AVR</strong> <strong>Studio</strong> <strong>und</strong> Teil 206 - C-Compiler <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong> vorgenommen worden.<br />

6.<br />

ASM- <strong>und</strong> C-Projekte werden jeweils in eigenen Gruppen gesammelt (Gruppe 400 für <strong>Assembler</strong><strong>und</strong><br />

Gruppe 600 für C-Projekte).<br />

Tools_205 03.06.2013 Seite 3 von 31


5 <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Anmerkungen:<br />

<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

1. Dieser Teil 205 setzt eigentlich Programmierkenntnisse in <strong>Assembler</strong> zur Erzeugung lauffähiger<br />

Programme voraus. Da hier allerdings nur die Handhabung von <strong>AVR</strong> <strong>Studio</strong> <strong>und</strong> des integrierten <strong>Assembler</strong>s<br />

beschrieben werden soll, werden die Schritte anhand von fertigen kleinen Programmen erläutert.<br />

2. Wer nicht in <strong>Assembler</strong> programmieren möchte kann den Teil 205 auch ganz überspringen <strong>und</strong><br />

gleich zum Teil 206 - C-Compiler <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong> springen.<br />

3. Von der Seite http://lehrer.schule.at/Doblinger/files/<strong>AVR</strong> <strong>Studio</strong> 4 Tutorial.pdf sind in diesem Abschnitt<br />

einige Anregungen entnommen worden.<br />

5.1 Der Übersetzer (<strong>Assembler</strong>)<br />

<strong>AVR</strong> <strong>Studio</strong> beinhaltet neben vielen anderen Ressourcen auch ein Übersetzungs-Tool für <strong>Assembler</strong>-<br />

Programme - dem sog. ASSEMBLER, meist abgekürzt ASM. Der wird automatisch herangezogen,<br />

wenn ein neues Projekt mit <strong>AVR</strong>-<strong>Studio</strong> eingerichtet <strong>und</strong> dabei Atmel <strong>AVR</strong> <strong>Assembler</strong> ausgewählt<br />

wird.<br />

Wenn <strong>AVR</strong> <strong>Studio</strong> neu gestartet wird, erscheint das Fenster Welcome to <strong>AVR</strong> <strong>Studio</strong> 4 (Einrichten<br />

eines neuen Projektes). Sollte das Fenster nach dem Start nicht zur Verfügung stehen, so wird zur<br />

Wiederherstellung des Dialogfensters Project => Project Wizard angeklickt <strong>und</strong> das Häkchen Show<br />

dialog at startup sollte für das Arbeiten mit <strong>Assembler</strong> wieder gesetzt werden.<br />

Bild 5.1-01: Startfenster des <strong>AVR</strong> <strong>Studio</strong><br />

Der Dialog zum Erstellen eines neuen Projektes kann entweder im Willkommensdialog mit dem Knopf<br />

New Project oder im Menü Project des <strong>AVR</strong> <strong>Studio</strong> Hauptfensters über die Option New Project aufgerufen<br />

werden.<br />

Tools_205 03.06.2013 Seite 4 von 31


5.2 Ein neues Projekt erzeugen<br />

<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Mit dem <strong>AVR</strong> <strong>Studio</strong> wird die Programmierung ausschließlich in Projekten abgewickelt. Das Aufrufen<br />

einer *.asm-Datei allein funktioniert nicht! Für jedes <strong>Assembler</strong>-Projekt wird eine Projekt-Datei (Projektname.aps)<br />

angelegt, die alle wichtigen Daten über das Projekt enthält:<br />

Welche Dateien dem Projekt zugeordnet wurden,<br />

die <strong>Assembler</strong>-Optionen,<br />

persönlich angepasste Formate usw.<br />

Die Projekt-Datei garantiert, dass das Projekt jederzeit in gleicher Form aufgerufen, geändert <strong>und</strong><br />

assembliert bzw. kompiliert werden kann. Wenn man mit der praktischen <strong>Assembler</strong>-Programmiertätigkeit<br />

beginnt, sollte man für seine ASM-Projekte einen eigenen Ordner vorsehen, in dem jedes<br />

Projekt seinen eigenen Unterordner erhält - dem Projektverzeichnis (Folder name), in dem <strong>AVR</strong> <strong>Studio</strong><br />

alle zum Projekt gehörenden Dateien abspeichert. Nach dem Motto "Ordnung hält nur der, der zu<br />

faul ist zum Suchen" wird für das erste Projekt gewählt:<br />

L:\ALEs_ASM_Progs\ALE_0001<br />

Es soll zunächst ein simples Demonstrations-Programm ALE_0001.asm mit <strong>AVR</strong> <strong>Studio</strong> erstellt <strong>und</strong><br />

in dem gleichnamigen Projektverzeichnis abgelegt werden: das Programm soll den Wert eines PORT-<br />

Registers so erhöhen, dass ein Binärzähler entsteht.<br />

Bild 5.2-01: Projekt-Startfenster Bild 5.2-02: Neuen Ordner erstellen<br />

Die angezeigte Location: zeigt beim ersten Aufruf wahrscheinlich auf das Systemlaufwerk C:\...<br />

Das soll geändert werden! Ein Klick auf öffnet das Menü Ordner suchen (Select folder), in dem<br />

der Ordner L:\ALEs_ASM_Progs\ALE_0001 auf dem Laufwerk KINGSTON (L:) neu eingerichtet<br />

werden soll (=> Neuen Ordner einstellen). <strong>AVR</strong> <strong>Studio</strong> stellt fest, dass der Ordner noch nicht existiert<br />

<strong>und</strong> hinterfragt, ob der Pfad neu erzeugt werden soll. Die Antwort muss lauten: Ja.<br />

Bild 5.2-03: Neuen Unterordner erstellen Bild 5.2-04: Die Lokation ist eingestellt<br />

Tools_205 03.06.2013 Seite 5 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Durch Anklicken von Atmel <strong>AVR</strong> <strong>Assembler</strong> wird das Feld Project name: freigegeben, so dass das<br />

Projekt einen Namen bekommen kann. Hier wird der Name ALE_0001 gewählt. Darüber hinaus wird<br />

der gleiche Name (automatisch) für das zu archivierende <strong>Assembler</strong>-Quell-Programm bestimmt:<br />

Initial file:ALE_0001.asm<br />

Bilder 5.2-05 <strong>und</strong> 5.2-06: Projekt- <strong>und</strong> Datei-Name festlegen<br />

Durch die Wahl Atmel <strong>AVR</strong> <strong>Assembler</strong> wird dem<br />

<strong>AVR</strong> <strong>Studio</strong> mitgeteilt, dass es sich bei der späteren<br />

Übersetzung des Quellprogramms nicht um<br />

eine C-Kompilierung (z.B. <strong>AVR</strong> GCC), sondern<br />

um eine <strong>AVR</strong> Assemblierung handelt. Wenn der<br />

Dialog mit dem Knopf Next>> bestätigt wird, erscheint<br />

nach einer Weile ein weiterer Dialog:<br />

Bild 5.2-07: Wahl des Mikrocontroller-Chips<br />

Damit <strong>AVR</strong> <strong>Studio</strong> später das Programm simulieren<br />

kann, muss hier <strong>AVR</strong> Simulator als Debug-<br />

Plattform ausgewählt <strong>und</strong> der verwendete Mikrocontroller-Typ angegeben werden. Im Beispiel wird<br />

der ATmega88 gewählt.<br />

Finish schließt die Projekt-Erzeugung ab <strong>und</strong> ermöglicht die manuelle Eingabe des Quell-Codes bzw.<br />

das Zuladen eines <strong>Assembler</strong>-Quell-Programms von der Festplatte im Editor-Fenster (integrierter<br />

Editor).<br />

Bild 5.2-08: Abschluss der Projekt-Erzeugung<br />

Tools_205 03.06.2013 Seite 6 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Eine Anmerkung am Rande zum Neustart von <strong>AVR</strong> <strong>Studio</strong>: Beim Neustart einer unterbrochenen<br />

Sitzung "denkt" <strong>AVR</strong> <strong>Studio</strong>, dass man ein neues Projekt beginnen möchte, wenn das Häkchen bei<br />

Show dialog at startup gesetzt war <strong>und</strong> öffnet wieder das Dialogfenster. Da <strong>AVR</strong> <strong>Studio</strong> sich aber<br />

auch "gemerkt" hat, dass die Projekt-Datei L:\<strong>AVR</strong>_ASM_Progs\ALE_0001\ALE_0001.aps als<br />

letzte in Bearbeitung war, so wird dieses Projekt auch mit dem Willkommensfenster wieder angeboten:<br />

5.2.1 Der Projekt-Bereich<br />

Bilder 5.2-09 <strong>und</strong> 5.2-10: Wiedereröffnung des Projektes<br />

Die Datei ALE_0001.asm wird automatisch als Hauptdatei des Projekts markiert. Dies ist erkennbar<br />

an dem kleinen roten Pfeil auf dem Icon neben dem Dateinamen im linken Feld - dem Projekt-<br />

Bereich Project. <strong>AVR</strong> <strong>Studio</strong> beginnt die Programmübersetzung immer bei der Hauptdatei, von der es<br />

im Ordner Source File immer nur eine geben kann.<br />

Merke: Die im Projekt-Bereich von <strong>AVR</strong> <strong>Studio</strong> angegebenen Ordner sind nicht identisch mit den Ordnern<br />

des Windows-Explorers! Da sucht man die Ordner vergeblich. Sie sind "versteckt" in der Projekt-<br />

DateiALE_0001.aps vorhanden.<br />

Wenn in einem ASM-Projekt mehrere Dateien<br />

benötigt werden, so können neue<br />

oder bestehende Dateien dem Projekt hinzugefügt<br />

werden. Nach einem Rechtsklick<br />

mit der Maus auf den Ordner Source File<br />

im Projekt-Bereich wird mit der Option<br />

Create New File eine neue Datei erstellt,<br />

deren Name danach angegeben werden<br />

muss. Durch die Option Add Files to Project<br />

können weitere bestehende Dateien<br />

hinzugefügt werden, <strong>AVR</strong> <strong>Studio</strong> fragt automatisch<br />

nach dem Ort der Datei.<br />

Bild 5.2.1-01: Hauptdatei des Projektes<br />

festlegen<br />

Eine neue Hauptdatei des Projektes wird festgelegt, indem auf ihren Dateinamen im Projekt-Bereich<br />

mit der rechten Maustaste geklickt wird <strong>und</strong> dann die Option Set as Entry File gewählt wird. Die neue<br />

Hauptdatei erhält dann den kleinen roten Pfeil .<br />

Erklärung der linken Ordner-Struktur im Projekt-Bereich<br />

Das neue Projekt heißt ALE_0001.aps <strong>und</strong> beinhaltet (schon für die zukünftige Assemblierung) die<br />

Ordner:<br />

Tools_205 03.06.2013 Seite 7 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Source Files<br />

Der Ordner enthält bereits die noch leere neu zu erstellende QuelldateiALE_0001.asm.<br />

In diesem Ordner werden alle Quelldateien aufgeführt. Ein Doppel-Klick auf ein beliebiges<br />

Programm in diesem Ordner öffnet es im Editor-Fenster zur weiteren Bearbeitung.<br />

Included Files<br />

Alle zum Projekt zugehörigen Include-Dateien, d.h. Dateien, die per <strong>Assembler</strong>-Direktive<br />

.INCLUDE in dem Hauptprogramm eingefügt werden, werden hier gelistet. Ein Doppel-<br />

Klick auf eine beliebige Datei in diesem Ordner öffnet sie im Editor-Fenster zur weiteren<br />

Bearbeitung.<br />

Labels<br />

Alle im <strong>Assembler</strong>-Quellprogramm verwendeten Labels werden hier gelistet. Ein Doppel-<br />

Klick auf ein beliebiges Label in diesem Ordner öffnet das betreffende Quellprogramm im<br />

Editor-Fenster an der Stelle des Labels zur weiteren Bearbeitung.<br />

Output<br />

Alle Ausgabe-Dateien werden hier aufgelistet.<br />

Object File<br />

Das erzeugte "Maschinen-Programm" wird hier abgelegt.<br />

5.2.2 Bearbeiten der <strong>Assembler</strong>datei<br />

Nachdem nun ein neues Projekt mit einer leeren Datei erstellt wurde, wird mit der Eingabe des <strong>Assembler</strong>-Programms<br />

begonnen. Sollte die Datei ALE_0001.asm nicht geöffnet sein, so kann diese im<br />

Editor-Fenster geöffnet werden, indem im Projekt-Bereich mit Doppelklick auf den Dateinamen geklickt<br />

wird. Die Datei ist zunächst leer, der Programmtext muss manuell ergänzt werden. Es soll der<br />

folgende Text eingetippt oder durch Kopieren eingegeben werden:<br />

Nach der Eingabe des Programms sollte es gespeichert werden. Dazu ist aus dem Menü File die<br />

Option Save zu verwenden.<br />

Tools_205 03.06.2013 Seite 8 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.2.2-01: Fertig editiertes <strong>und</strong> abgespeichertes <strong>Assembler</strong>-Quellprogramm<br />

Das <strong>AVR</strong> <strong>Studio</strong> Hauptfenster sollte nun nach der Eingabe des Quellprogramms wie in Bild 5.2.2-01<br />

dargestellt aussehen. Kleine Abweichungen sind möglich, da jedes Feld individuell eingestellt werden<br />

kann. Die farbliche Kennzeichnung der Syntaxhervorhebung weicht vom Beispieltext erheblich ab, da<br />

der integrierte Editor von <strong>AVR</strong> <strong>Studio</strong> für die Syntaxhervorhebung nur wenige Einstellmöglichkeiten<br />

bietet (siehe Teil 207 - Editor - UltraEdit).<br />

Die Include-Datei (partfile) m88def.inc für den einzusetzenden Mikrocontroller (hier: ATmega88)<br />

wird automatisch aus dem bei der Installation von <strong>AVR</strong> <strong>Studio</strong> vorgesehen Programm-Ordner zugeladen<br />

<strong>und</strong> braucht nicht mehr im selben Ordner wie das <strong>Assembler</strong>-Quellprogramme aufgeführt zu werden.<br />

Für den aktuellen <strong>Assembler</strong> (in den Programm-Ordnern steht Avr<strong>Assembler</strong>2 mit der Ordnungszahl<br />

2 ! im Gegensatz zum ebenfalls noch vorhandenen älteren <strong>Assembler</strong> ohne Ordnungszahl)<br />

stehen die Include-Dateien für alle <strong>AVR</strong>-Mikrocontroller, die von <strong>AVR</strong> <strong>Studio</strong> bedient werden<br />

können, im Ordner<br />

C:\Program Files (x86)\Atmel\<strong>AVR</strong> Tools\Avr<strong>Assembler</strong>2\Appnotes<br />

Die umständliche vollständige Pfadangabe wird<br />

weder in Additional Include path des Menüs für<br />

die <strong>Assembler</strong>-Optionen noch in der .INCUDE-<br />

Direktive im Quellprogramm angegeben.<br />

In den <strong>Assembler</strong>-Optionen wird noch der Haken<br />

gesetzt, um ein Listen-File zu erzeugen. Die <strong>Assembler</strong>-Optionen<br />

werden aufgerufen durch:<br />

Project => <strong>Assembler</strong> Options<br />

Create Map File ist Standard-Einstellung <strong>und</strong><br />

Create List File erhält einen zusätzlichen Haken<br />

Bild 5.2.2-02: <strong>Assembler</strong>-Optionen aufrufen<br />

Tools_205 03.06.2013 Seite 9 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Mit der Einstellung Version 2 (Default-Einstellung) wird der neueste <strong>Assembler</strong> eingestellt. Sollte ein<br />

älteres ASM-Programm assembliert werden, welches nicht mit dem <strong>AVR</strong>-<strong>Assembler</strong>2 kompatibel ist,<br />

so hilft ggf. die Markierung bei Version 1<br />

5.2.3 Assemblieren des Quell-Codes<br />

Die Assemblierung wird eingeleitet im Menü Build =><br />

Build (F7) oder => Build and Run (Strg+F7), je nach<br />

dem, ob man nur assemblieren oder auch gleichzeitig<br />

das Programm in den Mikrocontroller übertragen<br />

(flashen) <strong>und</strong> dort ablaufen lassen will.<br />

Bild 5.2.3-01: Assemblierung aufrufen<br />

<strong>AVR</strong> <strong>Studio</strong> übersetzt nun den Quelltext des Programms<br />

in die für den Mikrocontroller ausführbaren<br />

Befehle. Das Hauptfenster sollte danach wie folgt aussehen<br />

(im Projekt-Bereich sind die Ordner jetzt geöffnet):<br />

Bild 5.2.3-02: Nach der Assemblierung (Bildvergrößerung)<br />

Bei der Programmübersetzung kam es zu keinen Fehlern. Das fertige Objekt-Programm ist im Unterverzeichnis<br />

L:\ALEs_ASM_Progs\ALE_0001\ unter dem Dateinamen ALE_0001.hex<br />

abgelegt. Diese Datei könnte mit dem ICC2-<strong>AVR</strong>-Programmer in den Mikrocontroller übertragen<br />

(geflasht) werden. Zuvor soll jedoch das Programm in <strong>AVR</strong> <strong>Studio</strong> durch eine Simulation auf sein Verhalten<br />

untersucht werden.<br />

Tools_205 03.06.2013 Seite 10 von 31


5.3 Simulation des Codes<br />

<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bis hierher sind alle Dateien erstellt worden, die zur Simulation des Programms benötigt werden. Fehler<br />

(Errors) <strong>und</strong> Warnungen sind nicht aufgetreten, d.h. das <strong>Assembler</strong>programm ist ohne formale<br />

Fehler. Das heißt aber noch lange nicht, dass das Programm auch in seinem logischen Ablauf unseren<br />

Wünschen entspricht. Das Programm macht nur das - ggf. auch Unsinniges - was wir ihm per<br />

Coding mitgeteilt haben. Um das heraus zu bekommen, ob unser Wollen mit unseren Befehlen übereinstimmt,<br />

wird jetzt mit einer Simulation des Codes begonnen.<br />

Mit der Simulation kann man jeden einzelnen Programmschritt - aber auch eine einstellbare Sequenz<br />

aus mehreren Befehlen - mit seinen Wirkungen für Registerinhalte, Ports- <strong>und</strong> Timer-Funktionen usw.<br />

verfolgen. Veränderte Bits können so genau beobachtet werden.<br />

Um die Simulation anzustoßen, wird aus dem Menü Debug die Option Start Debugging aufgerufen:<br />

Bild 5.3-01: Debugger aufrufen<br />

Es wird nun im Editor ein gelber Pfeil auf der linken Seite des Programms angezeigt. Dieser Pfeil ist<br />

der Befehlszeiger (Instruction Pointer) <strong>und</strong> zeigt auf den nächsten auszuführenden Befehl. Im linken<br />

Bereich ist nun der Processor aktiv <strong>und</strong> zeigt die internen Strukturen des simulierten Prozessors an.<br />

Tools_205 03.06.2013 Seite 11 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.3-02: Beginn der Simulation<br />

Die Details werden im rechten Bereich I/O View angezeigt, z.B. was mit Port B während der Programmausführung<br />

geschieht. Es werden alle I/O-Einheiten des simulierten Prozessors angezeigt. Um<br />

nun die Details für Port B anzusehen, muss mit der linken Maustaste auf das kleine "+" nebenPORTB<br />

geklickt werden:<br />

Tools_205 03.06.2013 Seite 12 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.3-03: Detail-Anzeige vonPORTB<br />

Es werden alle Register, die mit Port B zusammenhängen, angezeigt. Dazu gehören das Port B Daten-Register<br />

PORTB, das Port B Eingangsregister PINB <strong>und</strong> das Datenrichtungsregister DDRB.<br />

Jedes Bit in den Registern wird durch eine Checkbox dargestellt. Eine logische Null (0) wird durch<br />

eine leere Checkbox <strong>und</strong> eine logische Eins wird durch eine ausgefüllte Checkbox angezeigt. Diese<br />

Checkboxen werden während der Programmausführung ständig aktualisiert <strong>und</strong> zeigen den jeweiligen<br />

Zustand der einzelnen Bits. Die einzelnen Bits können zwischenzeitlich auch durch Anklicken der<br />

Checkboxen mit der linken Maustaste gesetzt oder gelöscht werden, z.B. um Taster-Aktivitäten zu<br />

simulieren. Links neben den Checkboxen stehen die aktuellen Werte der Register in hexadezimaler<br />

Notation.<br />

5.3.1 Programmausführung im Einzelschrittverfahren<br />

Es gibt zwei Kommandos, um das Programm im Einzelschrittverfahren auszuführen. Dies sind Step<br />

Over (Funktionstaste F10) <strong>und</strong> Step Into (Funktionstaste F11) im Menü von Debug. Der Unterschied<br />

zwischen diesen Kommandos ist, dass Step Over nicht in Unterroutinen hineinläuft. Da das Beispielprogramm<br />

keine Unterroutinen besitzt, macht es im Beispiel keinen Unterschied, ob Step Over oder<br />

Step Into benutzt wird.<br />

Durch wiederholtes Betätigen von Step Into (F11) wird das Programm in Einzelschritten bis zur letzten<br />

Programmzeile rjmp LOOP ausgeführt, um dann lustig in der Programmschleife seine "Loopings"<br />

zu machen. Die Register wechseln ihre Farbe von schwarz auf rot, sobald ihr Wert verändert wird.<br />

Dadurch lässt sich einfacher beobachten, welche Register während der Programmausführung aktiv<br />

beteiligt sind.<br />

Durch weiteres Betätigen von Step Into oder der Funktionstaste F11 wird die Endlosschleife mehrfach<br />

durchlaufen. Dabei kann beobachtet werden, wie der Wert von Port B erhöht wird. Mit Reset (Umschalt+F5)<br />

wird wieder ganz von vorn beirjmp START angefangen.<br />

Tools_205 03.06.2013 Seite 13 von 31


5.3.2 Debugger-Stopp-Punkte<br />

<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.3.1-01: Einzelschritte mit Funktionstaste F11<br />

Hinweis: Trotz Zwischenspeicherung fallen nach Abbruch des Ablaufs der Debugger-Demonstration<br />

alle Assemblierungs-Hinweise weg, so dass nach erneutem Start des<br />

L:\<strong>AVR</strong>_ASM_Progs\ALE_0001\ALE_0001.aps<br />

eine neue Assemblierung notwendig wird. Gemäß den Bilder 5.2-09 <strong>und</strong> 5.2-10 wird das Projekt wiedereröffnet<br />

<strong>und</strong> in Einzelschritten werden die Abschnitte 5.2.3, 5.3 <strong>und</strong> 5.3.1 wiederholt, so dass hier<br />

mit dem Abschnitt 5.3.2 fortgefahren werden kann:<br />

Bild 5.3.2-01: Wiederaufsetzen nach einer Unterbrechung<br />

Tools_205 03.06.2013 Seite 14 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Durch setzen von Debugger-Stopp-Punkten (Breakpoints) kann der Ablauf eines Programms an beliebiger<br />

Stelle angehalten werden. Man bringt den Cursor z.B. auf die Zeile mit dem Befehl rjmp<br />

LOOP <strong>und</strong> betätigt Funktionstaste F9 oder wählt aus dem Menü Debug die Option Toggle Breakpoint.<br />

Der Stopp-Punkt kann durch erneutes Betätigen der Funktionstaste F9 wieder entfernt werden.<br />

Bild 5.3.2-02: Setzen eines Debugger-Stopp-Punktes<br />

Am linken Rand des Editor-Fensters erscheint ein roter Punkt <strong>und</strong> zeigt den soeben erstellten Stopp-<br />

Punkt an. Wenn aus dem Menü Debug die Option Run gewählt wird oder die Funktionstaste F5 gedrückt<br />

wird, läuft das Programm von der momentanen Position des Cursors los <strong>und</strong> hält erst an der<br />

Stelle mit dem Stopp-Punkt wieder an.<br />

In dem Beispiel läuft das Programm mit voller Geschwindigkeit immer wieder bis zum Ende der Endlosschleife,<br />

so dass die Funktionstaste F11 nicht 3-mal für jeden Loop gedrückt werden muss, um die<br />

Endlosschleife einmal komplett zu durchlaufen. Bei längeren Passagen kann so der Simulationsprozess<br />

erheblich beschleunigt werden.<br />

Merke: Die Funktionstasten F5, F11 (F10) <strong>und</strong> F9 können auch im beliebigen Wechsel verwendet<br />

werden.<br />

5.4 Verändern des Programmtextes<br />

Auch fertige Programme werden neueren Bedürfnissen angepasst oder dienen dazu, indem sie durch<br />

kleine Änderungen variiert werden, einen neuen Ablauf zu generieren. Zum Beispiel soll das Programm<br />

jetzt abwärts statt aufwärts zählen. Entsprechend soll der Programmtext editiert werden. Der<br />

Cursor wird im Editorfenster vor den Befehl inc (increment) gesetzt, dieser wird in dec (decrement)<br />

geändert. Wenn nun die Programmausführung wieder mit der Funktionstaste F5 (Run) gestartet wird,<br />

erscheint folgende Dialogbox:<br />

Bild 5.4-01: Aufforderung zur Neuübersetzung (Update)<br />

Tools_205 03.06.2013 Seite 15 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

<strong>AVR</strong> <strong>Studio</strong> bemerkt, das der Programmtext während der Simulation geändert wurde <strong>und</strong> fragt, ob die<br />

Neuübersetzung des Programms gewünscht wird. Das ist beabsichtigt, so dass die Frage mit Ja beantwortet<br />

wird.<br />

Das Projekt wird nun erneut übersetzt <strong>und</strong> der Befehlszeiger wird wieder auf die erste Zeile gesetzt.<br />

Eingestellte Stopp-Punkte bleiben unangetastet bestehen:<br />

Bild 5.4-02: Neuübersetzung (Update) des Quell-Programms<br />

5.4.1 Überwachen von Variablen<br />

Um während der Programmausführung den Inhalt von Variablen sehen zu können, kann im Menü<br />

View mit der Option Watch ein Fenster zur Überwachung der Variablen geöffnet werden.<br />

Bild 5.4.1-01: Einrichtung eines Überwachungsfensters<br />

Tools_205 03.06.2013 Seite 16 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Alle Variablen, die mit der Angabe .DEF definiert wurden, können im Fenster zur Überwachung angezeigt<br />

werden. Im Beispiel isttemp die einzige definierte Variable. Nachdem mit der rechten Maustaste<br />

in das Fenster zur Überwachung der Variablen geklickt <strong>und</strong> dann Add Item ausgewählt wurde, kann<br />

dorttemp eingegeben werden:<br />

Bild 5.4.1-02: Eintragung in das Überwachungsfenster (Bildvergrößerung)<br />

Nach Betätigen der Eingabetaste erscheint die Variable temp im Fenster Watch zur Überwachung.<br />

Die Wahl Display all Values as Hex zeigt den Wert der Variablen, indem man nun das Programm<br />

Schritt für Schritt weiter ausführt, in hexadezimaler Form an.<br />

Bild 5.4.1-03: Variable temp zur Überwachung<br />

festlegen<br />

Bild 5.4.1-04: Festlegung des Ausgabeformats<br />

(BIldvergrößerung) als Hex<br />

Tools_205 03.06.2013 Seite 17 von 31


5.4.2 Anzeige der Prozessordetails<br />

<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Die internen Strukturen des simulierten Prozessors können im linken Fenster als Detailansicht beobachtet<br />

werden. Hier werden prozessorspezifische Informationen wie Programmzähler, hoch gezählte<br />

Taktzyklen <strong>und</strong> verstrichene Zeit angezeigt. Diese Daten sind nützlich, wenn man die genaue Länge<br />

einer Schleife oder die exakte Zeit einer Unterroutine bestimmen will. In dem Beispiel werden solche<br />

Informationen nicht weiter benötigt, sie stellen aber eine nützliche Informationsquelle während der<br />

Simulation von größeren Projekten dar.<br />

5.4.3 Speichern des Projekts<br />

Bevor <strong>AVR</strong> <strong>Studio</strong> verlassen wird, muss das Projekt gespeichert werden. <strong>AVR</strong> <strong>Studio</strong> merkt sich die<br />

Positionen der Fenster <strong>und</strong> stellt diese wieder her, wenn das Projekt erneut geöffnet wird. Um das<br />

Projekt zu speichern, wird aus dem Menü Project die Option Save Project gewählt. Dann kann es<br />

getrost mit File <strong>und</strong> Exit verlassen werden.<br />

5.5 Erzeugen eines weiteren ASM-Projektes im Schnelldurchgang<br />

Jetzt sollen die Schritte noch einmal mit einem weiteren Projekt durchlaufen werden, ohne die kommentierenden<br />

Sprüche. Das neue <strong>Assembler</strong>-Programm ALE_0002.asm demonstriert, wie mit Tastern<br />

kleine LEDs aus- <strong>und</strong> eingeschaltet werden können:<br />

Tools_205 03.06.2013 Seite 18 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Das Programm ist auch auf dem Testboard lauffähig. Die Besonderheit ist, dass die LEDs mit einem<br />

invertierenden Treiberbaustein ULN2003 angesteuert werden. Sie sind mit ihrer Anode <strong>und</strong> einem<br />

Pull-up-Widerstand auf +5 V gelegt, so dass sie an ihrem "Eingang" bzw. an dem Ausgang des Treibers<br />

Null-Potential (GND = logisch 0) zum Leuchten benötigen. Oder anders ausgedrückt: Wenn am<br />

Treiber-Eingang logisch1anliegt, so leuchtet die entsprechende LED.<br />

Die Tasten sind ebenfalls mit Pull-up-Widerständen auf +5 V gelegt, so dass sie in Ruhestellung<br />

einen angeschlossenen Eingangs-Pin des Mikrocontrollers auf HIGH (logisch 1) ziehen. Die Logik<br />

wird also "umgekehrt":<br />

Taster in Ruhe => Chip-Eingang auf 1 => Chip-Ausgang/Treiber-Eingang auf 1<br />

=> Treiber-Ausgang auf 0 => LED ist EINgeschaltet<br />

Taster gedrückt => Chip-Eingang auf 0 => Chip-Ausgang/Treiber-Eingang auf 0<br />

=> Treiber-Ausgang auf 1 => LED ist AUSgeschaltet<br />

Das neue Projekt ALE_0002 soll ebenfalls im Ordner L:\ALEs_ASM_Progs angelegt werden,<br />

analog zur Beschreibung im Abschnitt 5.2:<br />

Bild 5.5-01: Neues Projekt anlegen Bild 5.5-02: Lokation festlegen<br />

Bild 5.5-03: Neuen Ordner erstellen Bild 5.5-04: Neuer Ordner heißtALE_0002<br />

Tools_205 03.06.2013 Seite 19 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-05: Projektname festlegen Bild 5.5-06: Mikrocontroller festlegen<br />

Bild 5.5-07: Neues Programm ALE_0002.asm editieren <strong>und</strong> . . .<br />

Tools_205 03.06.2013 Seite 20 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-08: . . . assemblieren<br />

Bei der Programmübersetzung kam es zu keinen Fehlern. Das fertige Objekt-Programm ist im Unterverzeichnis<br />

L:\ALEs_ASM_Progs\ALE_0002\ unter dem Dateinamen ALE_0002.hex<br />

abgelegt. Diese Datei könnte mit dem ICC2-<strong>AVR</strong>-Programmer in den Mikrocontroller übertragen<br />

(geflasht) werden. Zuvor soll jedoch das Programm in <strong>AVR</strong> <strong>Studio</strong> durch eine Simulation auf sein Verhalten<br />

untersucht werden.<br />

Tools_205 03.06.2013 Seite 21 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-09: Debugger-Start (Bildvergrößerung)<br />

Ausgangsposition des Debuggers<br />

Tools_205 03.06.2013 Seite 22 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-10: Debugger nach dem 6. Schritt (6 mal Funktionstaste F11drücken)<br />

Variabletemp (identisch mit Registerr16) ist mit00001111 "geladen"<br />

Tools_205 03.06.2013 Seite 23 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-11: Debugger nach dem 9. Schritt (Bildvergrößerung)<br />

00001111 nachDDRC <strong>und</strong>11110000 nachDDRD<br />

Tools_205 03.06.2013 Seite 24 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-12: Debugger nach dem 11. Schritt;Zero-Bit inSREG gesetzt, datemp = 0<br />

<strong>und</strong> weil inPIND keine Bits (simulierte Taster) durch Anklicken gesetzt wurden<br />

Tools_205 03.06.2013 Seite 25 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-13: Nach einer "Ehrenr<strong>und</strong>e" ohne Änderungen im Programm wurden<br />

inPIND BitPD0 <strong>und</strong> BitPD2 manuell gesetzt, die mit dem nächsten Schritt "gelesen" werden<br />

Die Bits PD0 <strong>und</strong> Bit PD2 sollen zwei der Taster simulieren: In dem man die Bits in PIND manuell<br />

setzt, wird dem Programm "vorgegaukelt", dass die Taste 1 <strong>und</strong> die Taste 3 gedrückt worden seien.<br />

Mit dem nächsten Schritt werden mit dem Befehl in temp,PIND die Bits abgefragt <strong>und</strong> im übernächsten<br />

Schritt werden die Setzungen (Schalterstellungen) mit dem Befehl out PORTC,temp im<br />

PORTC ausgegeben.<br />

Man beachte (kleine Wiederholung): Der gelbe Pfeil steht immer vor dem nächsten auszuführenden<br />

Befehl.<br />

Tools_205 03.06.2013 Seite 26 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-14: Drei Schritte weiter werden die<br />

Bits nachPORTC ausgegeben (Bildvergrößerung) <strong>und</strong> . . .<br />

Tools_205 03.06.2013 Seite 27 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.5-15: . . . im nächsten Schritt (Loop-Anfang) vonPINC<br />

übernommen (ohne weiteren Befehl) usw. usw. . . .<br />

Alle weiteren Schritte haben keine Veränderung im PORTC zur Folge, solange, wie keine Bits in PIND<br />

geändert werden (also im "Wirkbetrieb": So lange wie die Taste 1 <strong>und</strong> Taste 3 gedrückt bleibt).<br />

5.6 Flashen eines ASM-Programms in ein Mikrocontroller ATmega88<br />

Das Programm ALE_0002 ist jetzt assembliert <strong>und</strong> simuliert worden. Aber ein Test im "Wirkbetrieb" ist<br />

natürlich noch wichtiger. Dazu muss der Objektcode (das assemblierte Programm) in den Mikrocontroller<br />

(hier in den Mikrocontroller auf dem <strong>AVR</strong>-ALE-Testboard) geflasht werden, es müssen die notwendigen<br />

Verbindungen zwischen den Pins hergestellt werden.<br />

Als erstes werden auf dem <strong>AVR</strong>-ALE-Testboard die einzelnen Pins mit den Verbindungsschnüren<br />

verb<strong>und</strong>en.<br />

Dann wird das Board mit seinem Netzteil mit Spannung versorgt.<br />

Der ISP-Programmieradapter wird mit seinem USB-Stecker in einen freien USB-Steckplatz des PCs<br />

gesteckt, in dem das neue Programm abgespeichert wurde.<br />

Tools_205 03.06.2013 Seite 28 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.6-01: Beschaltung ALE_0002 (Bildvergrößerung)<br />

Überflüssige Schaltkreise <strong>und</strong> die Stromversorgung wurden in dem Beschaltungsbild weggelassen.<br />

<strong>AVR</strong> <strong>Studio</strong> wird nun erneut gestartet <strong>und</strong> das "Welcome"-Fenster" wird "gecancelt":<br />

Bild 5.6-02: Ausschalten des "Welcome"-Fensters<br />

Dann wird die Verbindung zum CC2-<strong>AVR</strong> Programmer (ISP-Programmieradapter) hergestellt (die<br />

Einstellungen wurden ja schon im Abschnitt 4.3.2 Mikrocontroller-Einstellungen im <strong>AVR</strong> <strong>Studio</strong><br />

vom Teil 204 vorgenommen, so dass man sich damit nicht mehr aufhalten muss):<br />

Tools_205 03.06.2013 Seite 29 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.6-03: Mit dem CC2-<strong>AVR</strong>-Programmer eine Verbindung herstellen<br />

Bild 5.6-04: Objektdatei (*.hex-File) suchen<br />

Tools_205 03.06.2013 Seite 30 von 31


<strong>AVR</strong>-8-bit-Mikrocontroller<br />

Gruppe 200 - Einsetzen von <strong>AVR</strong>-Tools<br />

Teil 205 - <strong>Assembler</strong> <strong>und</strong> <strong>AVR</strong> <strong>Studio</strong><br />

Bild 5.6-05: Objektdatei öffnen<br />

Bild 5.6-06: Programm flashen ==> <strong>und</strong> das Programm testen ==> alles O.K.<br />

Tools_205 03.06.2013 Seite 31 von 31

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!