Forum: Mikrocontroller und Digitale Elektronik RFM70 Library - Fehler im Code?


von Michael (c0d3z3r0)


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 :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.