UP Atmel-Portpins: Es geht einfacherWill man beweisen, daß der Leser nicht genug Verstand zur Nutzung der Geniesprache C besitzt, schreibt man Konstruktionen zur Bitmanipulation am besten in der allercoolsten Form:
Neulinge ärgern sich dann über die Bitschieberei mit den "kleiner-als"-Zeichen "<<". Ihre Aufmerksamkeit ist dahin. Kommen noch negierte Werte hinzu, wird es unübersichtlich, Frust kommt auf. Aber die Schreibweise läßt sich vereinfachen. Dazu brauchen wir nur acht Konstanten (pinX) einzuführen:
#define pin1 0x02 // 0b 0000 0010 #define pin2 0x04 // 0b 0000 0100 #define pin3 0x08 // 0b 0000 1000 #define pin4 0x10 // 0b 0001 0000 #define pin5 0x20 // 0b 0010 0000 #define pin6 0x40 // 0b 0100 0000 #define pin7 0x80 // 0b 1000 0000 Obiger Ausdruck heißt nun
Schieben wir die Defines jetzt noch in ein Atmel-Verzeichnis der Art <avr/portpins.h>, so haben wir für alle Zeit Frieden. Beim Xmega sparen wir uns das Nachsinnen über unnütze _bp oder _bm Konstrukte, _bp entfällt. Die Konsequenz unseres Tuns sollte dennoch klar sein. Der Compiler kann nicht wissen, daß wir Bitwerte manipulieren, er nutzt jetzt Register-Befehle und spart Atmels sbic oder sbis aus. GH Impressum
Home: www.gheinz.de
|