====== Nützliche Definitionen ====== ===== Bit Manipulationen ===== #define BIT(x) (1 << (x)) // Bit index to bit mask #define SET(x) |= BIT(x) // Bit setting #define CLR(x) &= ~BIT(x) // Bit clearing #define INV(x) ^= BIT(x) // Bit inversion // Setzen oder loeschen des angegebenen Bits im angegebenen Byte #define SETTO(value, bit, to) value = ((to) ? value | BIT(bit) : value & ~BIT(bit)) // Ueberpruefen ob angegebenes Bit im angegebenen Byte gesetzt ist #define ISSET(value, bit) ((value) & (BIT(bit))) // avrlibc deprecated macros #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) // Setze Bit in Byte #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) // Lösche Bit in Byte #define MAX(a, b) ((a) > (b)) ? (a):(b) //Ermittlung Maximalwert von a und b Digi i/o board (Study Board) #define LED1 PORTC, 3 #define LED2 PORTC, 4 #define LED3 PORTC, 5 #define S1 PORTC, 0 #define S2 PORTC, 1 #define S3 PORTC, 2