Hallo
Zu #define SWITCHES (1 << PD3)
Hier handelt es sich nur um eine Ersetzung. Die Klammern dienen der besseren Lesbarkeit und könnten hier auch weggelassen werden, denn << hat eine höhere Bindung als das |
https://www.google.de/search?q=bindung+der+operatoren
(Bindung entspricht in etwa dem bekannten "Punkt vor Strich")
Klammern belegen keinen Speicherplatz im kompilierten Programm und erhöhen die Lesbarkeit des Codes beträchtlich.
In io.h wird nach dem entsprechenden Kontroller verzweigt (-mmcu=xxx im Makefile/gcc-Kommandozeile):
#elif defined (__AVR_ATmega8__) // anderenfalls, wenn es sich um einen Mega8 handelt....
# include <avr/iom8.h> // ... dann binde die IO-Definitionen für den Mega8 ein
und in iom8.h findet man dann (unter anderem):
Code:
/* PORTD */
#define PD7 7
#define PD6 6
#define PD5 5
#define PD4 4
#define PD3 3
#define PD2 2
#define PD1 1
#define PD0 0
Gruß
mic
Lesezeichen