Browse Source

Reset excitement mode for hmc5883 sensor before applying a new one to avoid getting reserved 11 bits set in case of a set_excitement(1) call following a set_excitement(-1) call.

sbg
muharred 11 years ago
parent
commit
690843c53a
  1. 3
      src/drivers/hmc5883/hmc5883.cpp

3
src/drivers/hmc5883/hmc5883.cpp

@ -1283,14 +1283,13 @@ int HMC5883::set_excitement(unsigned enable) @@ -1283,14 +1283,13 @@ int HMC5883::set_excitement(unsigned enable)
if (OK != ret)
perf_count(_comms_errors);
_conf_reg &= ~0x03; // reset previous excitement mode
if (((int)enable) < 0) {
_conf_reg |= 0x01;
} else if (enable > 0) {
_conf_reg |= 0x02;
} else {
_conf_reg &= ~0x03;
}
// ::printf("set_excitement enable=%d regA=0x%x\n", (int)enable, (unsigned)_conf_reg);

Loading…
Cancel
Save