aboutsummaryrefslogtreecommitdiff
path: root/nuttx/configs/px4fmu/src/drv_ms5611.c
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/configs/px4fmu/src/drv_ms5611.c')
-rw-r--r--nuttx/configs/px4fmu/src/drv_ms5611.c11
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;
}
}