C++ AVR: Difference between revisions

From Chaosdorf Wiki
No edit summary
No edit summary
Line 1: Line 1:
[[Category:Projects]]
[[Category:Projects]]
[[File:avrBook.jpg|right|thumb|AVR Lehrbuch]]
[[File:avrBook.jpg|right|thumb|AVR Lehrbuch]]
[[File:atmelAVRmouse.jpg|right|thumb|atmel AVR-mouse]]7
[[File:atmelAVRmouse.jpg|right|thumb|atmel AVR-mouse]]
[[File:atmegaBoard.jpg|right|thumb|atmel ATMEGA selfmade Board]]
[[File:atmegaBoard.jpg|right|thumb|atmel ATMEGA selfmade Board]]
= Programmieren von AVR mit C/C++ =
= Programmieren von AVR mit C/C++ =

Revision as of 10:51, 13 April 2012

AVR Lehrbuch
atmel AVR-mouse
atmel ATMEGA selfmade Board

Programmieren von AVR mit C/C++

Kurzanleitung für Entwicklungsumgebung unter Linux

1. Benötigte Softwarepakete 1.1 gcc-avr: Dies ist der (portable) GNU C Compiler, der mehrere Sprachen unterstützt. Dieses Paket bietet Unterstützung für C.

1.2 avr-libc: Standardbibliothek, welche zur Entwicklung von C-Programmen für den Atmel AVR Microcontroller benutzt wird. Dieses Paket enthält die statischen Bibliotheken sowie die nötigen Headerdateien.

1.3 avrdude und avrdude-doc: AVRDUDE ist ein Open-Source-Werkzeug für Download, Upload und Manipulation von ROM- und EEPROM-Inhalt der AVR-Mikrocontroller mit Hilfe der ISP-Technik. ISP steht für In-System-Programmierung. Dieses Programmiertool wird durch das makefile

Alternativ evtl. avrp: Avrp ist ein FLASH/EEPROM-Programmierer für Atmels 8-bit-Mikrocontroller-Familie AVR. Er kann außerdem die Mikrocontroller der Atmel-AT89-Reihe programmieren. Er unterstützt mindestens vier verschiedene Programmiergeräte einschließlich Atmels eigenem AVR-Entwicklungs-Board und In-Circuit-Programmierung.

1.4 make: GNU Make ist ein Dienstprogramm, das die Erzeugung von ausführbaren und anderen Dateien aus Quelltexten steuert. Es bestimmt selbstständig, welche Teile eines großen Programms (erneut) erstellt werden müssen und führt die dafür erforderlichen Befehle aus. Make ist nicht auf ausführbare Programme beschränkt. Es lässt sich für jede Aufgabenstellung, bei der eine Reihe von Dateien aus anderen Dateien aufgrund von Abhängigkeiten und Verarbeitungsregeln erzeugt werden müssen, gebrauchen. In der Tat ist es ein Allzweckwerkzeug für die Auflösung von Abhängigkeiten.

1.5 binutils-avr: The programs in this package are used to manipulate binary and object files that may have been created for Atmel's AVR architecture. This package is primarily for AVR developers and cross-compilers and is not needed by normal users or developers.

1.6. Editor: Hier kann jede(r) seinen/ihren Lieblingseditor verwenden. Wichtig ist nur, daß damit der Text des Quellcodes geschrieben und gespeichert werden kann.

Einige andere Pakete könnten später noch nützlich sein, werden aber am Anfang nicht unbedingt benötigt, z.B. "avr-evtd" (ARV-Watchdog-Daemon für Linkstation/Kurobox), "simulavr" (Simulator), "gdb-avr" (source-level debugger)

2. Mit dem Editor ein C-Programm schreiben, als Test kann flash1.c dienen, daß eine LED zum Blinken bringt. Die Datei muß in .c enden

Beispielcode flash1.c (dankenswerterweise von penma zur Verfügung gestellt)

#include <avr/io.h>
#include <stdlib.h>

int main (void) {
	uint32_t cnt = 0;

	DDRD = (1 << PD5) | (1 << PD6);

	while (1) {
		cnt++;
		cnt &= (1 << 15) - 1;

		if (cnt & (1 << 14)) {
			PORTD = 1 << PD5;
		} else {
			PORTD = 0 << PD5;
		}
	}

	return 0;
}

2. Compilieren

"make TARGET=flash1"
Mit TARGET wird der Name des Programms angegeben 

3. Übertragen des Hexfiles in den Controller

   make program TARGET=flash1