AP_Compass: added external compass autodetection on Navio

This commit is contained in:
Staroselskii Georgii 2016-04-29 15:55:17 +03:00 committed by Lucas De Marchi
parent 62f2695e83
commit 2e5cfc2849
2 changed files with 18 additions and 1 deletions

View File

@ -508,6 +508,22 @@ void Compass::_detect_backends(void)
hal.console->printf("LSM9DS1: Compass not detected\n");
}
backend = AP_Compass_HMC5843::probe(*this, hal.i2c_mgr->get_device(HAL_COMPASS_HMC5843_I2C_BUS, HAL_COMPASS_HMC5843_I2C_ADDR));
if (backend) {
_add_backend(backend);
hal.console->printf("HMC5843: External compass detected\n");
} else {
hal.console->printf("HMC5843: External compass not detected\n");
}
#elif HAL_COMPASS_DEFAULT == HAL_COMPASS_NAVIO
AP_Compass_Backend *backend = AP_Compass_AK8963::probe_mpu9250(*this, 0);
if (backend) {
_add_backend(backend);
hal.console->printf("AK8953: Compass detected\n");
} else {
hal.console->printf("AK8953: Compass not detected\n");
}
backend = AP_Compass_HMC5843::probe(*this, hal.i2c_mgr->get_device(HAL_COMPASS_HMC5843_I2C_BUS, HAL_COMPASS_HMC5843_I2C_ADDR));
if (backend) {
_add_backend(backend);

View File

@ -97,6 +97,7 @@
#define HAL_COMPASS_QURT 12
#define HAL_COMPASS_BBBMINI 13
#define HAL_COMPASS_NAVIO2 14
#define HAL_COMPASS_NAVIO 15
// Heat Types
#define HAL_LINUX_HEAT_PWM 1
@ -288,7 +289,7 @@
#define HAL_BARO_MS5611_I2C_BUS 1
#define HAL_BARO_MS5611_I2C_ADDR 0x77
#define HAL_BARO_MS5611_USE_TIMER false
#define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
#define HAL_COMPASS_DEFAULT HAL_COMPASS_NAVIO
/* HMC5843 can be an external compass */
#define HAL_COMPASS_HMC5843_I2C_BUS 1
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E