RFM70 Library - Fehler im Code?

OP #3179672
Lesenswert?

Hallo,

nach einigen Experimenten mit dem RFM70 Funkmodul, habe ich mich ein 
bisschen genauer mit der Library hier auseinandergesetzt:
http://code.google.com/p/odobot1/source/browse/libraries/rfm70/rfm70.cpp

Ich vermute, dass der folgende Ausschnitt fehlerhaft ist. Kann das 
vielleicht jemand bestätigen?
1
void RFM70::configARD(uint8_t ard) {
2
  if (ard > 0x0f) return;
3
  uint8_t tmp = readRegVal(RFM70_REG_SETUP_RETR);
4

5
  tmp &= ((ard << 4) | 0x0F);
6

7
  writeRegVal(RFM70_CMD_WRITE_REG | RFM70_REG_SETUP_RETR, tmp);
8
}

Angenommen, der Ausgangswert im Register ist 0x00, dann würde die 
Funktion keinerlei Änderung bewirken, da auch der Endwert 0x00 wäre. 
Müsste der Code nicht folgendermaßen aussehen?
1
void RFM70::configARD(uint8_t ard) {
2
  if (ard > 0x0f) return;
3
  uint8_t tmp = readRegVal(RFM70_REG_SETUP_RETR);
4
  
5
  tmp &= 0x0F;
6
  tmp |= (ard << 4);
7

8
  writeRegVal(RFM70_CMD_WRITE_REG | RFM70_REG_SETUP_RETR, tmp);
9
}

Danke schonmal :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren