Embedded Systems und Firmware
Welche C-Schreibweise setzt nur Bit 3 des Registers reg auf 1 und lässt die übrigen Bits unverändert?
- Areg |= (1 << 3);
- Breg = (1 << 3);
- Creg &= (1 << 3);
Antwort und Erläuterung anzeigen
Antwort: A. reg |= (1 << 3);
„1 << 3“ ist binär 00001000, eine Maske, in der nur Bit 3 gleich 1 ist. Wird sie per ODER (|) mit dem Registerwert verknüpft, wird Bit 3 stets 1, und die übrigen Bits behalten ihren ursprünglichen Wert. Eine Zuweisung (=) überschreibt auch die anderen Bits mit 0 und zerstört andere Einstellungen der Peripherie. Die Bitnummern werden ab 0 für das niederwertigste Bit gezählt.