icm45686: fix dt (and usage command)

With the wrong dt, the flight behaviour was really poor and noisy, so
this fix is absolutely required.

Signed-off-by: Julian Oes <julian@oes.ch>
This commit is contained in:
Julian Oes 2023-11-20 18:30:57 +13:00
parent 1b99e7df81
commit a501262a6b
3 changed files with 4 additions and 4 deletions

View File

@ -522,7 +522,7 @@ void ICM45686::ProcessAccel(const hrt_abstime &timestamp_sample, const FIFO::DAT
accel.dt = (float)timestamp_fifo * ((1.f / _input_clock_freq) * 1e6f); accel.dt = (float)timestamp_fifo * ((1.f / _input_clock_freq) * 1e6f);
} else { } else {
accel.dt = FIFO_TIMESTAMP_SCALING; accel.dt = FIFO_SAMPLE_DT;
} }
// 20 bit hires mode // 20 bit hires mode
@ -634,7 +634,7 @@ void ICM45686::ProcessGyro(const hrt_abstime &timestamp_sample, const FIFO::DATA
gyro.dt = (float)timestamp_fifo * ((1.f / _input_clock_freq) * 1e6f); gyro.dt = (float)timestamp_fifo * ((1.f / _input_clock_freq) * 1e6f);
} else { } else {
gyro.dt = FIFO_TIMESTAMP_SCALING; gyro.dt = FIFO_SAMPLE_DT;
} }
// 20 bit hires mode // 20 bit hires mode

View File

@ -70,7 +70,7 @@ private:
void exit_and_cleanup() override; void exit_and_cleanup() override;
// Sensor Configuration // Sensor Configuration
static constexpr float FIFO_SAMPLE_DT{1e6f / 8000.f}; // 8000 Hz accel & gyro ODR configured static constexpr float FIFO_SAMPLE_DT{1e6f / 6400.f}; // 6400 Hz accel & gyro ODR configured
static constexpr float GYRO_RATE{1e6f / FIFO_SAMPLE_DT}; static constexpr float GYRO_RATE{1e6f / FIFO_SAMPLE_DT};
static constexpr float ACCEL_RATE{1e6f / FIFO_SAMPLE_DT}; static constexpr float ACCEL_RATE{1e6f / FIFO_SAMPLE_DT};

View File

@ -38,7 +38,7 @@
void ICM45686::print_usage() void ICM45686::print_usage()
{ {
PRINT_MODULE_USAGE_NAME("icm42688p", "driver"); PRINT_MODULE_USAGE_NAME("icm45686", "driver");
PRINT_MODULE_USAGE_SUBCATEGORY("imu"); PRINT_MODULE_USAGE_SUBCATEGORY("imu");
PRINT_MODULE_USAGE_COMMAND("start"); PRINT_MODULE_USAGE_COMMAND("start");
PRINT_MODULE_USAGE_PARAMS_I2C_SPI_DRIVER(false, true); PRINT_MODULE_USAGE_PARAMS_I2C_SPI_DRIVER(false, true);