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