& bitweise AND – Verknüpfung (bitwise and)
<< (bitshift left)
>> (bitshift right)
^ bitweise XOR – Verknüpfung (bitwise xor)
| bitweise OR – Verknüpfung (bitwise or)
~ bitweise NOT – Verknüpfung (bitwise not)
Bit Setzen
// Setzen von Bit 2 und 7 im Register // Die Bit's in Register werden mit B10000100 ODER verknüpft Register |= B10000100; // Nur Bit 2 und 7 werden auf 1 gesetzt, die restlichen Bits bleiben unverändert // entspricht Register = Register | B10000100; // oder Register |= (1 << Bit2); //Bit2 wird auf 1 gesetzt Register |= (1 << Bit7); //Bit7 wird auf 1 gesetzt // oder Register |= (1 << Bit2) | (1 << Bit7); //Bit2 und Bit7 werden auf 1 gesetzt
Bit löschen
// Löschen von Bit 2 und 7 im Register Register &= ~B10000100; // entspricht Register = Register & ~B10000100; // oder Register &= ~(1 << Bit2); // Bit2 wird auf 0 gesetzt Register &= ~(1 << Bit7); // Bit7 wird auf 0 gesetzt // oder Register &= ~(1 << Bit2) | (1 << Bit7); //Bit2 und Bit7 werden auf 0 gesetzt
Bit invertieren (umschalten)
// invertiert Bit 4 im Register Register ^= B00010000; // entspricht Register = Register ^ B00010000; // Invertiert Bit4 // oder Register ^= (1 << Bit4); // Invertiert Bit4
Bit abfragen
// abfragen des WGM12-Bits im TCCR1B Register byte bitStatus = (TCCR1B & (1 << WGM12)) >> WGM12; // oder mit // Bedingungsoperator bool bitStatus = (TCCR1B & (1 << WGM12)) == (1 << WGM12) ? 1 : 0;
Quellen:
arduino-projekte.webnode.at