diff options
Diffstat (limited to 'nuttx/configs/px4fmu/src/drv_ms5611.c')
-rw-r--r-- | nuttx/configs/px4fmu/src/drv_ms5611.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/nuttx/configs/px4fmu/src/drv_ms5611.c b/nuttx/configs/px4fmu/src/drv_ms5611.c index 7fea65159..c7e91c5ea 100644 --- a/nuttx/configs/px4fmu/src/drv_ms5611.c +++ b/nuttx/configs/px4fmu/src/drv_ms5611.c @@ -123,6 +123,16 @@ static FAR struct { static int ms5611_read_prom(void); +int ms5611_reset() +{ + int ret; + printf("[ms5611 drv] Resettet I2C2 BUS\n"); + up_i2cuninitialize(ms5611_dev.i2c); + ms5611_dev.i2c = up_i2cinitialize(2); + I2C_SETFREQUENCY(ms5611_dev.i2c, 400000); + return ret; +} + static bool read_values(float *data) { @@ -279,6 +289,7 @@ read_values(float *data) else { errno = -ret; + if (errno == ETIMEDOUT || ret == ETIMEDOUT) ms5611_reset(); return ret; } } |