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