From 851a473a3f0745066f2810f96af2c321d854b339 Mon Sep 17 00:00:00 2001 From: Pim van Pelt Date: Sat, 5 Jan 2019 14:14:19 +0100 Subject: [PATCH] Add ability to set custom ACC/GYRO/MAG with BOARD=0; Avoid creating sensors if *_I2CADDR is -1 --- tests/imu.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tests/imu.c b/tests/imu.c index c544712..8b4bc15 100644 --- a/tests/imu.c +++ b/tests/imu.c @@ -7,7 +7,7 @@ bool test_imu_enabled = true; static struct mgos_imu *s_imu = NULL; -#define BOARD 2 +#define BOARD 0 #if BOARD == 1 // LSM303D_L3GD20_COMBO -- sold as GY-89 @@ -25,7 +25,7 @@ static struct mgos_imu *s_imu = NULL; #define GYRO_TYPE GYRO_ITG3205 #define MAG_I2CADDR 0x1d #define MAG_TYPE MAG_HMC5883L -#else +#elif BOARD == 3 // Sold as M5 Stack (ESP32 + MPU9250) #define ACC_I2CADDR 0x68 #define ACC_TYPE ACC_MPU9250 @@ -33,6 +33,13 @@ static struct mgos_imu *s_imu = NULL; #define GYRO_TYPE GYRO_MPU9250 #define MAG_I2CADDR 0x0c #define MAG_TYPE MAG_AK8963 +#else + #define ACC_I2CADDR 0x1d + #define ACC_TYPE ACC_MMA8451 + #define GYRO_I2CADDR -1 + #define GYRO_TYPE -1 + #define MAG_I2CADDR -1 + #define MAG_TYPE -1 #endif bool test_imu_create(void) { @@ -41,13 +48,13 @@ bool test_imu_create(void) { return false; } - if (!mgos_imu_accelerometer_create_i2c(s_imu, mgos_i2c_get_global(), ACC_I2CADDR, ACC_TYPE)) { + if (ACC_I2CADDR > 0 && !mgos_imu_accelerometer_create_i2c(s_imu, mgos_i2c_get_global(), ACC_I2CADDR, ACC_TYPE)) { LOG(LL_ERROR, ("Cannot create accelerometer on IMU")); } - if (!mgos_imu_gyroscope_create_i2c(s_imu, mgos_i2c_get_global(), GYRO_I2CADDR, GYRO_TYPE)) { + if (GYRO_I2CADDR > 0 && !mgos_imu_gyroscope_create_i2c(s_imu, mgos_i2c_get_global(), GYRO_I2CADDR, GYRO_TYPE)) { LOG(LL_ERROR, ("Cannot create gyroscope on IMU")); } - if (!mgos_imu_magnetometer_create_i2c(s_imu, mgos_i2c_get_global(), MAG_I2CADDR, MAG_TYPE)) { + if (MAG_I2CADDR > 0 && !mgos_imu_magnetometer_create_i2c(s_imu, mgos_i2c_get_global(), MAG_I2CADDR, MAG_TYPE)) { LOG(LL_ERROR, ("Cannot create magnetometer on IMU")); }