11static constexpr uint8_t ICM20689_REG_WHO_AM_I = 0x75;
12static constexpr uint8_t ICM20689_REG_PWR_MGMT_1 = 0x6B;
13static constexpr uint8_t ICM20689_REG_USER_CTRL = 0x6A;
14static constexpr uint8_t ICM20689_REG_GYRO_CONFIG = 0x1B;
15static constexpr uint8_t ICM20689_REG_ACCEL_CONFIG = 0x1C;
16static constexpr uint8_t ICM20689_REG_ACCEL_XOUT_H = 0x3B;
17static constexpr uint8_t ICM20689_READ_BIT = 0x80;
18static constexpr uint8_t ICM20689_WHO_AM_I_VALUE = 0x98;
19static constexpr uint8_t ICM20689_SOFT_RESET = 0x81;
20static constexpr uint8_t ICM20689_CLKSEL_AUTO = 0x01;
21static constexpr uint8_t ICM20689_I2C_IF_DIS = 0x10;
40 public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW,
41 spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_1MHZ> {
43 void setup()
override;
void write_register_(uint8_t reg, uint8_t value)
bool update_data(motion::MotionData &data) override
void set_gyro_range(ICM20689GyroRange range)
void read_registers_(uint8_t reg, uint8_t *data, size_t len)
ICM20689GyroRange gyro_range_
void add_temperature_listener(F &&callback)
void dump_config() override
ICM20689AccelRange accel_range_
LazyCallbackManager< void(float)> temperature_callback_
void set_accel_range(ICM20689AccelRange range)
The SPIDevice is what components using the SPI will create.
@ ICM20689_ACCEL_RANGE_2G
@ ICM20689_ACCEL_RANGE_16G
@ ICM20689_ACCEL_RANGE_4G
@ ICM20689_ACCEL_RANGE_8G
@ ICM20689_GYRO_RANGE_2000
@ ICM20689_GYRO_RANGE_1000
@ ICM20689_GYRO_RANGE_250
@ ICM20689_GYRO_RANGE_500