aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormuharred <muharred@gmail.com>2014-08-20 13:06:39 +0300
committermuharred <muharred@gmail.com>2014-08-20 13:06:39 +0300
commit690843c53aa03283688e04fbe2894fc986f31b6b (patch)
treeb1fd44d1cfed8e97d4ec20d4ca8126d0d83ff97f /src
parent9e099b42fadffe466547512aed2edf26dafed8d4 (diff)
downloadpx4-firmware-690843c53aa03283688e04fbe2894fc986f31b6b.tar.gz
px4-firmware-690843c53aa03283688e04fbe2894fc986f31b6b.tar.bz2
px4-firmware-690843c53aa03283688e04fbe2894fc986f31b6b.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/drivers/hmc5883/hmc5883.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/drivers/hmc5883/hmc5883.cpp b/src/drivers/hmc5883/hmc5883.cpp
index 0e9a961ac..e4ecfa6b5 100644
--- a/src/drivers/hmc5883/hmc5883.cpp
+++ b/src/drivers/hmc5883/hmc5883.cpp
@@ -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);