Aktuelle Hinweise

Vorwort

Dieses Tutorial wendet sich sowohl an Einsteiger als auch an Umsteiger, die sich mit der objektorientierten Programmierung von AVR Mikrocontrollern beschäftigen möchten. Es ist kein C++ oder AVR-Programmier-Tutorial im engeren Sinne und erhebt daher keinen Anspruch auf Vollständigkeit in diesen Bereichen. Hier soll sich speziell mit ausgewählten Aspekten für den einfachen Einstieg in die objektorientierte Programmierung von AVR-Mikrocontrollern auseinandergesetzt werden. Teile dieses Tutorials sind gekürzte Auszüge aus den myAVR Lehrbüchern Mikrocontroller-Programmierung und Embedded Software Engineering. Sie werden erfahren, dass C++ für den AVR einen leichten Einstieg und gleichzeitig Professionalität bieten kann.

Viel Spaß mit diesem kleinen Tutorial!

Beachten Sie: Dieses Tutorial basiert auf dem PEC Framework (Portable Embedded Classes). Aktuell wird das Framework nicht mehr als Bibliothek für Zeilen-orientierte Programmierung ausgerollt. Alle aktuellen Entwicklungen erfolgen in der Modellierungssprache UML. Dazu finden Sie mehr unter http://www.avr-uml.de

Einleitung

Die Objektorientierung ist ursprünglich angetreten, das Programmieren einfacher zu machen. Praktisch erscheinen jedoch objektorientierte Sprachen für viele eher als Hürde nicht als Erleichterung. Das muss aber nicht so sein. Assembler und C sind nicht wirklich einfacher als C++. Bilden Sie sich zu folgenden Codeausschnitten selbst Ihre Meinung.

// offizieller AVR C Standard ///////////////////////////////////////
if (!(PIND&(1<<PD2)))
    PORTB&=~(1<<PB7); 
 
// das Gleiche mit myAVR C++ ////////////////////////////////////////
if ( pinD.bit2 == 0 )
     portB.bit7 = 0;
 
// und mit Klassen aus dem myAVR C++ Framework //////////////////////
if ( button.isPressed() )
     led.off();

Ich glaube, dieses kleine Beispiel zeigt deutlich, dass eine objektorientierte Vorgehensweise und Programmierung zu wesentlich verständlicherem Code führen kann. Man könnte auch sagen, das man das Ziel der Objektorientierung erreicht hat, wenn der Programmcode sich wie Klartext lesen lässt. Dieser These stehen meist typische Bedenken gegenüber, wie in etwa: Ist denn objektorientierte Programmierung auf Mikrocontrollern überhaupt möglich und sinnvoll? Frisst das nicht zu viel Ressourcen? Ist Objektorientierung für diesen Anwendungsbereich nicht zu abstrakt? Die Diskussion für oder gegen den Einsatz objektorientierter Sprachen auf Mikrocontrollern soll an einer anderen Stelle erfolgen (zum Beispiel: hier). Wir wollen uns von den Bedenkenträgern nicht abhalten lassen. Vor allem auch, weil die Zeit rasend schnell für die Objektorientierung arbeitet. Zuerst gilt es die Vorrausetzungen für die Arbeit zu schaffen.

„Jede neue Sprache ist wie ein offenes Fenster,
das einen neuen Ausblick auf die Welt eröffnet
und die Lebensauffassung weitet.“

Frank Harris (1856-1931), amerikanischer Schriftsteller

Ein paar theoretische Grundlagen

Bevor Sie in die praktische Seite des Tutorials abtauchen, sollten Sie (müssen aber nicht) folgende theoretische Grundlagen studieren und möglichst verinnerlichen:

Voraussetzungen zur praktischen Arbeit

Das Abarbeiten dieses Tutorials geht am besten mit der geeigneten

Erste Schritte

Anwendungsbeispiele

Weiterführendes