Zitat Zitat von 021aet04
... einfache Schreib/Lesebefehle wie z.B. setze_bit(PD3) schreibt und das entsprechende Bit gesetzt wird ...
Das ist in einem Thread von copius durch askazo schön erklärt worden :an dieser Stelle

Daraus habe ich dann das hier gemacht:
Code:
 #define SetBit(ADDR,BIT)       ((ADDR) |= (1<<(BIT)))          // Setzt Bit
 #define ClrBit(ADDR,BIT)       ((ADDR) &= ~(1<<(BIT)))         // Löscht Bit
 #define ToogleBit(ADDR,BIT)    ((ADDR) ^= (1<<(BIT)))          // Toogelt Bit
 #define IsBitSet(ADDR,BIT)     (((ADDR) & (1<<BIT))?1:0)       // Fragt Bit = 1?
 #define IsBitClr(ADDR,BIT)     (!(ADDR) & ~(1<<BIT))           // Fragt Bit = 0?
und dann heissen Beispiele etwa so:
Code:
    SetBit(PORTC, 5);   // LED auf PC5 schalten EIN, HELL
    ClrBit(PORTC, 5);   // LED auf PC5 schalten AUS, Dunkel
Bei "IsBitSet/IsBitClr" muß bei "ADDR" statt PORTx natürlich PINx geschrieben werden. BIT läuft wie gewohnt von 0 bis 7.