Browse Source

Increase the retry count while probing for I2C sensors. This will also unwedge stuck sensors.

sbg
px4dev 13 years ago
parent
commit
0dc0a0539d
  1. 4
      apps/drivers/hmc5883/hmc5883.cpp
  2. 9
      apps/drivers/ms5611/ms5611.cpp

4
apps/drivers/hmc5883/hmc5883.cpp

@ -339,12 +339,14 @@ HMC5883::close_last(struct file *filp) @@ -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) ||

9
apps/drivers/ms5611/ms5611.cpp

@ -317,11 +317,12 @@ MS5611::close_last(struct file *filp) @@ -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;
}

Loading…
Cancel
Save