From cc6c6c3b8cb56f79eb6bb09d8d4bc7535a30b184 Mon Sep 17 00:00:00 2001 From: murata Date: Sat, 19 Feb 2022 19:18:31 +0900 Subject: [PATCH] power_monitor: Determine I2C communication errors --- src/drivers/power_monitor/ina238/ina238.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/drivers/power_monitor/ina238/ina238.cpp b/src/drivers/power_monitor/ina238/ina238.cpp index d3210088b3..d8afc1bd63 100644 --- a/src/drivers/power_monitor/ina238/ina238.cpp +++ b/src/drivers/power_monitor/ina238/ina238.cpp @@ -114,7 +114,9 @@ int INA238::init() return ret; } - write(INA238_REG_CONFIG, (uint16_t)(INA238_RST_RESET | _range)); + if (write(INA238_REG_CONFIG, (uint16_t)(INA238_RST_RESET | _range)) != PX4_OK) { + return ret; + } uint16_t shunt_calibration = static_cast(INA238_CONST * _current_lsb * _rshunt); @@ -127,7 +129,9 @@ int INA238::init() } // Set the CONFIG for max I - write(INA238_REG_CONFIG, (uint16_t) _range); + if (write(INA238_REG_CONFIG, (uint16_t) _range) != PX4_OK) { + return ret; + } // Start ADC continous mode here ret = write(INA238_REG_ADCCONFIG, (uint16_t)INA238_ADCCONFIG);