From 001efc1c0be26acc2eb5ab9e7cc722a84b3a3c17 Mon Sep 17 00:00:00 2001 From: Peter van der Perk Date: Wed, 28 May 2025 10:31:24 +0200 Subject: [PATCH] Bosch: BMM350: Fix self-test on high ODR rate We've to wait for atleast 6000us before doing self-test --- src/drivers/magnetometer/bosch/bmm350/BMM350.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/drivers/magnetometer/bosch/bmm350/BMM350.cpp b/src/drivers/magnetometer/bosch/bmm350/BMM350.cpp index e4e8e19f9c..83f43a962b 100755 --- a/src/drivers/magnetometer/bosch/bmm350/BMM350.cpp +++ b/src/drivers/magnetometer/bosch/bmm350/BMM350.cpp @@ -34,6 +34,8 @@ #include "BMM350.hpp" using namespace time_literals; +#define MAX(a,b) (a > b ? a : b) + BMM350::BMM350(const I2CSPIDriverConfig &config) : I2C(config), I2CSPIDriver(config), @@ -318,7 +320,7 @@ void BMM350::RunImpl() _state = STATE::RESET; } - ScheduleDelayed(OdrToUs(_mag_odr_mode)); + ScheduleDelayed(MAX(6000_us, OdrToUs(_mag_odr_mode))); break; }