diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-16 15:00:58 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-07-16 15:00:58 +0200 |
commit | 11eeb7466d80452f18fd036cc72899a2ddbd33e9 (patch) | |
tree | 87a79ae904d3c7b4e105ff1e53bb8ce255bc42ff /src/drivers/hmc5883 | |
parent | 43bc2c3ef2a867a015e7198c797d089d6252fdde (diff) | |
parent | c6c9c49823a4c19e156f4ce70bde781890ab04f9 (diff) | |
download | px4-firmware-11eeb7466d80452f18fd036cc72899a2ddbd33e9.tar.gz px4-firmware-11eeb7466d80452f18fd036cc72899a2ddbd33e9.tar.bz2 px4-firmware-11eeb7466d80452f18fd036cc72899a2ddbd33e9.zip |
Merge branch 'ext_mag_param' into logging
Diffstat (limited to 'src/drivers/hmc5883')
-rw-r--r-- | src/drivers/hmc5883/hmc5883.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/drivers/hmc5883/hmc5883.cpp b/src/drivers/hmc5883/hmc5883.cpp index 26014c6d8..f229ecc32 100644 --- a/src/drivers/hmc5883/hmc5883.cpp +++ b/src/drivers/hmc5883/hmc5883.cpp @@ -1358,8 +1358,8 @@ namespace hmc5883 #endif const int ERROR = -1; -HMC5883 *g_dev_int; -HMC5883 *g_dev_ext; +HMC5883 *g_dev_int = nullptr; +HMC5883 *g_dev_ext = nullptr; void start(int bus, enum Rotation rotation); void test(int bus); @@ -1395,6 +1395,11 @@ start(int bus, enum Rotation rotation) errx(0, "already started internal"); g_dev_int = new HMC5883(PX4_I2C_BUS_ONBOARD, HMC5883L_DEVICE_PATH_INT, rotation); if (g_dev_int != nullptr && OK != g_dev_int->init()) { + + /* tear down the failing onboard instance */ + delete g_dev_int; + g_dev_int = nullptr; + if (bus == PX4_I2C_BUS_ONBOARD) { goto fail; } |