diff --git a/src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.cpp b/src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.cpp index 88b71bc422..8a95620641 100644 --- a/src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.cpp +++ b/src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.cpp @@ -43,13 +43,14 @@ namespace Bosch::BMI088::Accelerometer BMI088_Accelerometer::BMI088_Accelerometer(I2CSPIBusOption bus_option, int bus, uint32_t device, enum Rotation rotation, int bus_frequency, spi_mode_e spi_mode, spi_drdy_gpio_t drdy_gpio) : BMI088(DRV_ACC_DEVTYPE_BMI088, "BMI088_Accelerometer", bus_option, bus, device, spi_mode, bus_frequency, drdy_gpio), + ModuleParams(nullptr), _px4_accel(get_device_id(), ORB_PRIO_HIGH, rotation) { if (drdy_gpio != 0) { _drdy_interval_perf = perf_alloc(PC_INTERVAL, MODULE_NAME"_accel: DRDY interval"); } - ConfigureSampleRate(); + ConfigureSampleRate(_param_imu_gyro_rate_max.get()); } BMI088_Accelerometer::~BMI088_Accelerometer() @@ -285,7 +286,7 @@ void BMI088_Accelerometer::ConfigureAccel() void BMI088_Accelerometer::ConfigureSampleRate(int sample_rate) { - if (sample_rate == 0) { + if (sample_rate == 0 || sample_rate > 800) { sample_rate = 800; // default to 800 Hz } diff --git a/src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.hpp b/src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.hpp index bc9485dd89..603c7abc17 100644 --- a/src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.hpp +++ b/src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.hpp @@ -36,13 +36,14 @@ #include "BMI088.hpp" #include +#include #include "Bosch_BMI088_Accelerometer_Registers.hpp" namespace Bosch::BMI088::Accelerometer { -class BMI088_Accelerometer : public BMI088 +class BMI088_Accelerometer : public BMI088, public ModuleParams { public: BMI088_Accelerometer(I2CSPIBusOption bus_option, int bus, uint32_t device, enum Rotation rotation, int bus_frequency, @@ -129,6 +130,10 @@ private: { Register::INT1_IO_CONF, INT1_IO_CONF_BIT::int1_out, 0 }, { Register::INT1_INT2_MAP_DATA, INT1_INT2_MAP_DATA_BIT::int1_fwm, 0}, }; + + DEFINE_PARAMETERS( + (ParamInt) _param_imu_gyro_rate_max + ) }; } // namespace Bosch::BMI088::Accelerometer