mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 16:25:31 +03:00
Add compass QMC5883L driver (#5309)
This commit is contained in:
parent
6560e96e98
commit
73eb5d396e
56 changed files with 248 additions and 14 deletions
|
@ -34,6 +34,7 @@
|
|||
#include "drivers/compass/compass_ak8963.h"
|
||||
#include "drivers/compass/compass_fake.h"
|
||||
#include "drivers/compass/compass_hmc5883l.h"
|
||||
#include "drivers/compass/compass_qmc5883l.h"
|
||||
#include "drivers/io.h"
|
||||
#include "drivers/light_led.h"
|
||||
|
||||
|
@ -83,7 +84,7 @@ void pgResetFn_compassConfig(compassConfig_t *compassConfig)
|
|||
#endif
|
||||
compassConfig->mag_i2c_device = I2C_DEV_TO_CFG(I2CINVALID);
|
||||
compassConfig->mag_i2c_address = 0;
|
||||
#elif defined(USE_MAG_HMC5883) || defined(USE_MAG_AK8975) || (defined(USE_MAG_AK8963) && !(defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_MPU9250)))
|
||||
#elif defined(USE_MAG_HMC5883) || defined(USE_MAG_QMC5883) || defined(USE_MAG_AK8975) || (defined(USE_MAG_AK8963) && !(defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_MPU9250)))
|
||||
compassConfig->mag_bustype = BUSTYPE_I2C;
|
||||
compassConfig->mag_i2c_device = I2C_DEV_TO_CFG(MAG_I2C_INSTANCE);
|
||||
compassConfig->mag_i2c_address = 0;
|
||||
|
@ -180,6 +181,22 @@ bool compassDetect(magDev_t *dev)
|
|||
#endif
|
||||
FALLTHROUGH;
|
||||
|
||||
case MAG_QMC5883:
|
||||
#ifdef USE_MAG_QMC5883
|
||||
if (busdev->bustype == BUSTYPE_I2C) {
|
||||
busdev->busdev_u.i2c.address = compassConfig()->mag_i2c_address;
|
||||
}
|
||||
|
||||
if (qmc5883lDetect(dev)) {
|
||||
#ifdef MAG_QMC5883L_ALIGN
|
||||
dev->magAlign = MAG_QMC5883L_ALIGN;
|
||||
#endif
|
||||
magHardware = MAG_QMC5883;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
FALLTHROUGH;
|
||||
|
||||
case MAG_AK8975:
|
||||
#ifdef USE_MAG_AK8975
|
||||
if (busdev->bustype == BUSTYPE_I2C) {
|
||||
|
|
|
@ -30,7 +30,8 @@ typedef enum {
|
|||
MAG_NONE = 1,
|
||||
MAG_HMC5883 = 2,
|
||||
MAG_AK8975 = 3,
|
||||
MAG_AK8963 = 4
|
||||
MAG_AK8963 = 4,
|
||||
MAG_QMC5883 = 5
|
||||
} magSensor_e;
|
||||
|
||||
typedef struct mag_s {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue