Programmierung anderer Controller mit AVR C++
Die Programmierung anderer Conroller mit AVR C++ ist denkbar einfach. C und C++ zeichnen sich dadurch aus, dass mit diesen Hochsprachen eine gute Portabilität erreicht werden kann. Voraussetzung ist jedoch, dass physische Aspekte von den logischen Teilen des Programmcodes getrennt sein müssen. Was für die Mikrocontrollerprogrammierung bedeutet, dass im eigentlichen Anwendungsprogramm keine direkten Registerzugriffe erlaubt sind. Betrachten wir den myAVR C++ Code, welchen wir bisher erstellt haben, so erfüllt dieser genau jene Anforderung. Verantwortlich dafür ist die Klassenbibliothek. Diese legt sich als Schicht zwischen unser Anwendungsprogramm und die physische Hardware.
Legen Sie eine Kopie des kleinen Programms für das Wecker-Projekt mit dem ATmega8 an. Benennen Sie die Kopie als test328.
Auf dem Controllerboard ist der Controller gegen einen ATmega328 und der 3,6864 MHz Quarz gegen einen mit 20 Mhz auszutauschen. Jetzt müssen nur noch die bisherigen controllerspezifischen Einstellungen der Entwicklungsumgebung angepasst werden.
Die Einstellungen können spezifisch nur für diese eine Portierung geändert werden. Dazu ist es möglich im definieren-Dialog für das kleine Programm die AVR spezifischen Einstellungen unter „Extras AVR“ anzupassen. Damit bleiben die projektweiten Grundeinstellungen erhalten. Beachten Sie auch, dass ggf. die Fusebits des neuen Controllers auf ext. Crystal Osc. gestellt werden muss.
Wenn die Einstellungen vorgenommen wurden, muss das Programm noch einmal vollständig gebildet, also mit den Einstellungen für den ATmega328 kompiliert und gelinkt werden. Dann lässt sich die portierte Anwendung auf den Controller übertragen.
Videozusammenfassung
Und weil es immer wieder so schön ist hier das Ganze wiederum als Video.
Nächstes Thema
Für die Verwendung der myAVR C++ Bibliotheken bei der einfachen Programmierung mit dem kleinen Programm ist Voraussetzung, dass die Bibliotheken für den Zielcontroller vorkompiliert sind. Sollten mal keine vorkompilierten Bibliotheken vorliegen oder man möchte die Bibliotheken erweitern bzw. komplexere Projekte erstellen, kann man trotzdem in AVR C++ arbeiten. Darauf geht der letzte Abschnitt ein.