diff options
author | px4dev <px4@purgatory.org> | 2012-08-25 10:53:14 -0700 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2012-08-25 10:53:14 -0700 |
commit | 0dc0a0539dafdf1727763cc145f02faa8a8e7d22 (patch) | |
tree | 3b726219aca5de67ae8d24e458b5050bbc503350 /apps | |
parent | 4456ca8827c59d8711e76bd644336d5b3cd344dd (diff) | |
download | px4-firmware-0dc0a0539dafdf1727763cc145f02faa8a8e7d22.tar.gz px4-firmware-0dc0a0539dafdf1727763cc145f02faa8a8e7d22.tar.bz2 px4-firmware-0dc0a0539dafdf1727763cc145f02faa8a8e7d22.zip |
Increase the retry count while probing for I2C sensors. This will also unwedge stuck sensors.
Diffstat (limited to 'apps')
-rw-r--r-- | apps/drivers/hmc5883/hmc5883.cpp | 4 | ||||
-rw-r--r-- | apps/drivers/ms5611/ms5611.cpp | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/apps/drivers/hmc5883/hmc5883.cpp b/apps/drivers/hmc5883/hmc5883.cpp index a9212e7ab..c6d03a7e4 100644 --- a/apps/drivers/hmc5883/hmc5883.cpp +++ b/apps/drivers/hmc5883/hmc5883.cpp @@ -339,12 +339,14 @@ HMC5883::close_last(struct file *filp) int HMC5883::probe() { - uint8_t data[3]; + uint8_t data[3] = {0, 0, 0}; + _retries = 3; if (read_reg(ADDR_ID_A, data[0]) || read_reg(ADDR_ID_B, data[1]) || read_reg(ADDR_ID_C, data[2])) debug("read_reg fail"); + _retries = 1; if ((data[0] != ID_A_WHO_AM_I) || (data[1] != ID_B_WHO_AM_I) || diff --git a/apps/drivers/ms5611/ms5611.cpp b/apps/drivers/ms5611/ms5611.cpp index c85e5b3a6..40448511d 100644 --- a/apps/drivers/ms5611/ms5611.cpp +++ b/apps/drivers/ms5611/ms5611.cpp @@ -317,11 +317,12 @@ MS5611::close_last(struct file *filp) int MS5611::probe() { - if (OK == probe_address(MS5611_ADDRESS_1)) - return OK; - - if (OK == probe_address(MS5611_ADDRESS_2)) + _retries = 3; + if((OK == probe_address(MS5611_ADDRESS_1)) || + (OK == probe_address(MS5611_ADDRESS_2))) { + _retries = 1; return OK; + } return -EIO; } |