From 9ae974deab83fdb712d30423eb9c2832e68897ee Mon Sep 17 00:00:00 2001 From: Devoalda Date: Fri, 27 Oct 2023 19:54:22 +0800 Subject: [PATCH] fix(Magnetometer): Fixed Yaw Calculation --- frtos/config/magnetometer_config.h | 12 ++++++++++++ frtos/magnetometer/LSM303DLHC_register.h | 8 -------- frtos/magnetometer/magnetometer_test.c | 4 ++-- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/frtos/config/magnetometer_config.h b/frtos/config/magnetometer_config.h index 1eed5f3..2996d79 100644 --- a/frtos/config/magnetometer_config.h +++ b/frtos/config/magnetometer_config.h @@ -10,6 +10,18 @@ #define ALPHA ( 0.01f ) // Complementary // Filter Constant +// LSM303DLHC temperature compensation coefficients +#define SCALE_Z ( 1.0f ) // Scale for Z-axis +#define OFFSET_Z ( 3.0f ) // Offset for Z-axis + +#define TEMPERATURE_OFFSET ( 25.0f ) // Reference + // temperature for + // calibration + +#define TEMPERATURE_COEFFICIENT_Z ( 0.33f ) // Temperature + // coefficient for + // Z-axis + /** * @brief The orientation of the car */ diff --git a/frtos/magnetometer/LSM303DLHC_register.h b/frtos/magnetometer/LSM303DLHC_register.h index 5b5940f..8b24e6b 100644 --- a/frtos/magnetometer/LSM303DLHC_register.h +++ b/frtos/magnetometer/LSM303DLHC_register.h @@ -28,15 +28,7 @@ #define LSM303_TEMP_OUT_H_M 0x31 #define LSM303_TEMP_OUT_L_M 0x32 -// LSM303DLHC temperature compensation coefficients -#define SCALE_Z 0.9 // Scale factor for Z-axis -#define OFFSET_Z 5.0 // Offset for Z-axis -#define TEMPERATURE_OFFSET 25.0 // Reference temperature for calibration -#define TEMPERATURE_COEFFICIENT_Z 0.33 - -#define OFFSET_Z 5.0 -#define SCALE_Z 0.9 #define ACCEL_ADDR 0x19 #define MAG_ADDR 0x1E diff --git a/frtos/magnetometer/magnetometer_test.c b/frtos/magnetometer/magnetometer_test.c index 18af527..b509d42 100644 --- a/frtos/magnetometer/magnetometer_test.c +++ b/frtos/magnetometer/magnetometer_test.c @@ -30,9 +30,9 @@ main (void) { stdio_usb_init(); - sleep_ms(2000); +// sleep_ms(2000); - printf("Test started!\n"); +// printf("Test started!\n"); magnetometer_init(); launch();