Hallo,
nach laaanger Pause will ich mal wieder selber irgendwas programmieren,
um nicht ganz einzurosten. Es geht um eine Verständnisfrage zu C (bzw.
C++) bei der Lib zum RFM69. Der screenshot in der Anlage zeigt das
Register, um das es geht.
1 | #define RF_OPMODE_TRANSMITTER 0x0C // also 00001100
|
2 | ...
|
3 | writeReg(REG_OPMODE, (readReg(REG_OPMODE) & 0xE3) | RF_OPMODE_TRANSMITTER);
|
Hier wird der Inhalt des Registers REG_OPMODE mit 0xE3 verUNDet, danach
mit 00001100 verODERert wieder zurückgeschrieben.
Warum das verUNDen? Kann man in diesem Fall nicht einfach den Inhalt von
REG_OPMODE mit 00001100 verODERn? Es kommt doch das Selbe raus, da die
Maske mit 00001100 auch 8 bit hat und bit 0 und 1 hier egal sind (RO,
unused, allways read as 00). Oder etwa doch nicht??? Dann wird es wohl
tatsächlich höchste Zeit, etwas gegen den Rost zu tun...