Wie bereits erläutert ist das myAVR C++ Framework für den WinAVR Compiler entwickelt. Aus Unzufriedenheit mit dem einen oder anderen dort gesetzten Standard gibt es ein paar kleine Erweiterungen, über die man gern diskutieren kann. Ausgewählte Erweiterungen werden hier kurz vorgestellt, da sie hier im Tutorial durchaus eine Rolle spielen. Die Erweiterungen sind problemlos über eine Includedatei, zum Beispiel auch im AVR Studio, einsetzbar.
Als Erstes ein paar Typdeklarationen die ausschließlich die Schreibweise oft verwendeter Basistypen betreffen.
#define uint8 uint8_t #define int8 int8_t #define uint16 uint16_t #define int16 int16_t ...
Für den einfachen Zugriff auf die DigitalPorts wurden Strukturdefinitionen im Framework erstellt die es erlauben in einer Schreibweise auf die Ports zuzugreifen, die typisch für eine moderne Programmiersprache ist. Dabei beginnen die Namen klein und Teilbezeichnungen werden mit Großbuchstaben hervorgehoben. Der Zugriff auf Strukturelemente erfolgt mit dem Punkt-Operator. Die bisherige Schreibweise der Portzugriffe ist jedoch nach wie vor möglich.
Folgende Schreibweise ergibt sich daraus:
// Schreibweise der Ports ddrB pinB portB ... // schreiben eines Data Directin Rerister Bits ddrB.bit0 = 1; // schreiben eines PORT-Bits portB.bit0 = 1; // löschen eines Data Directin Rerister Bits ddrB.bit0 = 0; // löschen eines Port-Bits portB.bit0 = 0; // auswerten (einlesen) eines Port Input Bits if ( pinD.bit2 == 0 ) ... //usw...
Es ist zu beachten, dass in SiSy für die entsprechenden Elemente (z.B. kleines Programm) die Spracheinstellungen auf AVR C++ stehen müssen und in jedem Fall der richtige Zielcontroller und die Taktfrequenz im Dialog korrekt angegeben wurden. SiSy setzt dann die entsprechenden Compilerschalter und sorgt dafür, dass alle nötigen Includes, Makros, Programmrahmen und Bibliotheken automatisch eingebunden werden.
Zum vergrößern einfach die Bilder anklicken.