diff options
author | Andrew Tridgell <tridge@samba.org> | 2013-05-04 18:44:37 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2013-05-04 18:44:37 +1000 |
commit | d0122dccfc28869414f0e9cd2cb1d9f131c3fd20 (patch) | |
tree | 796e8bf1395a86e8f510b2f8780dcb2ca7620286 /src/drivers | |
parent | aa9275c29ce90644448f0260d782ea68f21eacc7 (diff) | |
download | px4-firmware-d0122dccfc28869414f0e9cd2cb1d9f131c3fd20.tar.gz px4-firmware-d0122dccfc28869414f0e9cd2cb1d9f131c3fd20.tar.bz2 px4-firmware-d0122dccfc28869414f0e9cd2cb1d9f131c3fd20.zip |
hmc5883: fixed use of onboard I2C compass
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/hmc5883/hmc5883.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/drivers/hmc5883/hmc5883.cpp b/src/drivers/hmc5883/hmc5883.cpp index c406a7588..78eda327c 100644 --- a/src/drivers/hmc5883/hmc5883.cpp +++ b/src/drivers/hmc5883/hmc5883.cpp @@ -1225,19 +1225,25 @@ start() /* create the driver, attempt expansion bus first */ g_dev = new HMC5883(PX4_I2C_BUS_EXPANSION); + if (g_dev != nullptr && OK != g_dev->init()) { + delete g_dev; + g_dev = nullptr; + } + #ifdef PX4_I2C_BUS_ONBOARD /* if this failed, attempt onboard sensor */ - if (g_dev == nullptr) + if (g_dev == nullptr) { g_dev = new HMC5883(PX4_I2C_BUS_ONBOARD); + if (g_dev != nullptr && OK != g_dev->init()) { + goto fail; + } + } #endif if (g_dev == nullptr) goto fail; - if (OK != g_dev->init()) - goto fail; - /* set the poll rate to default, starts automatic data collection */ fd = open(MAG_DEVICE_PATH, O_RDONLY); |