aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <andrew@tridgell.net>2015-01-01 08:45:25 +1100
committerAndrew Tridgell <andrew@tridgell.net>2015-01-01 08:51:47 +1100
commite4318345f3a105ac769f93f09f6e11cfb7aa0072 (patch)
tree91125bc4e18e6e1973335698afef3700f25ad9e5
parent2ac3a6fcf4ab051b53f635d696a45edac438228e (diff)
downloadpx4-firmware-e4318345f3a105ac769f93f09f6e11cfb7aa0072.tar.gz
px4-firmware-e4318345f3a105ac769f93f09f6e11cfb7aa0072.tar.bz2
px4-firmware-e4318345f3a105ac769f93f09f6e11cfb7aa0072.zip
lsm303d: added two more checked registers
these are key for DRDY behaviour
-rw-r--r--src/drivers/lsm303d/lsm303d.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/drivers/lsm303d/lsm303d.cpp b/src/drivers/lsm303d/lsm303d.cpp
index a062b2828..ace228920 100644
--- a/src/drivers/lsm303d/lsm303d.cpp
+++ b/src/drivers/lsm303d/lsm303d.cpp
@@ -297,7 +297,7 @@ private:
// this is used to support runtime checking of key
// configuration registers to detect SPI bus errors and sensor
// reset
-#define LSM303D_NUM_CHECKED_REGISTERS 6
+#define LSM303D_NUM_CHECKED_REGISTERS 8
static const uint8_t _checked_registers[LSM303D_NUM_CHECKED_REGISTERS];
uint8_t _checked_values[LSM303D_NUM_CHECKED_REGISTERS];
uint8_t _checked_next;
@@ -474,6 +474,8 @@ private:
const uint8_t LSM303D::_checked_registers[LSM303D_NUM_CHECKED_REGISTERS] = { ADDR_WHO_AM_I,
ADDR_CTRL_REG1,
ADDR_CTRL_REG2,
+ ADDR_CTRL_REG3,
+ ADDR_CTRL_REG4,
ADDR_CTRL_REG5,
ADDR_CTRL_REG6,
ADDR_CTRL_REG7 };
@@ -708,8 +710,8 @@ LSM303D::reset()
/* enable mag */
write_checked_reg(ADDR_CTRL_REG7, REG7_CONT_MODE_M);
write_checked_reg(ADDR_CTRL_REG5, REG5_RES_HIGH_M);
- write_reg(ADDR_CTRL_REG3, 0x04); // DRDY on ACCEL on INT1
- write_reg(ADDR_CTRL_REG4, 0x04); // DRDY on MAG on INT2
+ write_checked_reg(ADDR_CTRL_REG3, 0x04); // DRDY on ACCEL on INT1
+ write_checked_reg(ADDR_CTRL_REG4, 0x04); // DRDY on MAG on INT2
accel_set_range(LSM303D_ACCEL_DEFAULT_RANGE_G);
accel_set_samplerate(LSM303D_ACCEL_DEFAULT_RATE);