Embedded Systems und Firmware
Das Bit eines Ausgangspins mit angeschlossener LED soll bei jeder Ausführung zwischen Ein und Aus umgeschaltet werden. Welche C-Schreibweise ist korrekt?
- Aport |= (1 << 5);
- Bport ^= (1 << 5);
- Cport &= ~(1 << 5);
Antwort und Erläuterung anzeigen
Antwort: B. port ^= (1 << 5);
Beim exklusiven ODER (XOR, ^) wird das Bit durch XOR mit 1 invertiert, bei XOR mit 0 bleibt es unverändert. Bei jeder Ausführung von „port ^= (1 << 5)“ wechselt daher nur Bit 5 zwischen 0 und 1. Das wird häufig für blinkende LEDs genutzt. Manche Mikrocontroller besitzen auch spezielle Register, mit denen sich Bits allein durch Schreiben invertieren lassen.