
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.
Lesezeichen