Browse Source

bmi088 accel: use IMU_GYRO_RATEMAX to configure sampling rate (with 800 max)

Primarily for logging the fifo topic @400 Hz.
sbg
Beat Küng 5 years ago committed by Daniel Agar
parent
commit
ab060cdab0
  1. 5
      src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.cpp
  2. 7
      src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.hpp

5
src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.cpp

@ -43,13 +43,14 @@ namespace Bosch::BMI088::Accelerometer @@ -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() @@ -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
}

7
src/drivers/imu/bosch/bmi088/BMI088_Accelerometer.hpp

@ -36,13 +36,14 @@ @@ -36,13 +36,14 @@
#include "BMI088.hpp"
#include <lib/drivers/accelerometer/PX4Accelerometer.hpp>
#include <px4_platform_common/module_params.h>
#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: @@ -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<px4::params::IMU_GYRO_RATEMAX>) _param_imu_gyro_rate_max
)
};
} // namespace Bosch::BMI088::Accelerometer

Loading…
Cancel
Save