25extern int memcmp(
const void *,
const void *,
size_t);
32#define DMP_CODE_SIZE 14301
36#define ICM_20948_I2C_ADDR_AD0 0x68
37#define ICM_20948_I2C_ADDR_AD1 0x69
38#define ICM_20948_WHOAMI 0xEA
40#define MAG_AK09916_I2C_ADDR 0x0C
41#define MAG_AK09916_WHO_AM_I 0x4809
42#define MAG_REG_WHO_AM_I 0x00
45#define INV_MAX_SERIAL_READ 16
47#define INV_MAX_SERIAL_WRITE 16
233 ICM_20948_Status_e ICM_20948_i2c_controller_configure_peripheral(
ICM_20948_Device_t *pdev, uint8_t peripheral, uint8_t addr, uint8_t reg, uint8_t len,
bool Rw,
bool enable,
bool data_only,
bool grp,
bool swap, uint8_t dataOut);
ICM_20948_Status_e ICM_20948_reset_DMP(ICM_20948_Device_t *pdev)
int memcmp(const void *, const void *, size_t)
ICM_20948_Status_e ICM_20948_i2c_master_reset(ICM_20948_Device_t *pdev)
ICM_20948_Status_e ICM_20948_enable_FIFO(ICM_20948_Device_t *pdev, bool enable)
uint8_t sensor_type_2_android_sensor(enum inv_icm20948_sensor sensor)
ICM_20948_Status_e inv_icm20948_write_mems(ICM_20948_Device_t *pdev, unsigned short reg, unsigned int length, const unsigned char *data)
Write data to a register in DMP memory.
ICM_20948_Status_e ICM_20948_sleep(ICM_20948_Device_t *pdev, bool on)
ICM_20948_Status_e inv_icm20948_read_dmp_data(ICM_20948_Device_t *pdev, icm_20948_DMP_data_t *data)
ICM_20948_Status_e ICM_20948_wom_threshold(ICM_20948_Device_t *pdev, ICM_20948_ACCEL_WOM_THR_t *write, ICM_20948_ACCEL_WOM_THR_t *read)
ICM_20948_Status_e inv_icm20948_enable_dmp_sensor_int(ICM_20948_Device_t *pdev, enum inv_icm20948_sensor sensor, int state)
ICM_20948_Status_e ICM_20948_set_FIFO_mode(ICM_20948_Device_t *pdev, bool snapshot)
ICM_20948_Status_e inv_icm20948_set_gyro_sf(ICM_20948_Device_t *pdev, unsigned char div, int gyro_level)
ICM_20948_Status_e ICM_20948_set_clock_source(ICM_20948_Device_t *pdev, ICM_20948_PWR_MGMT_1_CLKSEL_e source)
ICM_20948_Status_e ICM_20948_set_sample_rate(ICM_20948_Device_t *pdev, ICM_20948_InternalSensorID_bm sensors, ICM_20948_smplrt_t smplrt)
ICM_20948_InternalSensorID_bm
ICM_20948_Status_e ICM_20948_set_full_scale(ICM_20948_Device_t *pdev, ICM_20948_InternalSensorID_bm sensors, ICM_20948_fss_t fss)
ICM_20948_Status_e ICM_20948_int_pin_cfg(ICM_20948_Device_t *pdev, ICM_20948_INT_PIN_CFG_t *write, ICM_20948_INT_PIN_CFG_t *read)
ICM_20948_Status_e ICM_20948_get_who_am_i(ICM_20948_Device_t *pdev, uint8_t *whoami)
ICM_20948_Status_e ICM_20948_i2c_controller_periph4_txn(ICM_20948_Device_t *pdev, uint8_t addr, uint8_t reg, uint8_t *data, uint8_t len, bool Rw, bool send_reg_addr)
ICM_20948_Status_e ICM_20948_int_enable(ICM_20948_Device_t *pdev, ICM_20948_INT_enable_t *write, ICM_20948_INT_enable_t *read)
@ ICM_20948_Stat_InvalDMPRegister
@ ICM_20948_Stat_ParamErr
@ ICM_20948_Stat_FIFONoDataAvail
@ ICM_20948_Stat_FIFOIncompleteData
@ ICM_20948_Stat_FIFOMoreDataAvail
@ ICM_20948_Stat_DMPNotSupported
@ ICM_20948_Stat_DMPVerifyFail
@ ICM_20948_Stat_InvalSensor
@ ICM_20948_Stat_SensorNotSupported
@ ICM_20948_Stat_UnrecognisedDMPHeader
@ ICM_20948_Stat_UnrecognisedDMPHeader2
enum inv_icm20948_sensor inv_icm20948_sensor_android_2_sensor_type(int sensor)
ICM_20948_Status_e inv_icm20948_firmware_load(ICM_20948_Device_t *pdev, const unsigned char *data, unsigned short size, unsigned short load_addr)
Loads the DMP firmware from SRAM.
ICM_20948_Status_e ICM_20948_check_id(ICM_20948_Device_t *pdev)
const ICM_20948_Serif_t NullSerif
ICM_20948_Status_e ICM_20948_data_ready(ICM_20948_Device_t *pdev)
ICM_20948_Status_e inv_icm20948_set_dmp_sensor_period(ICM_20948_Device_t *pdev, enum DMP_ODR_Registers odr_reg, uint16_t interval)
ICM_20948_Status_e inv_icm20948_read_mems(ICM_20948_Device_t *pdev, unsigned short reg, unsigned int length, unsigned char *data)
Read data from a register in DMP memory.
ICM_20948_Status_e ICM_20948_get_FIFO_count(ICM_20948_Device_t *pdev, uint16_t *count)
ICM_20948_Status_e ICM_20948_set_dmp_start_address(ICM_20948_Device_t *pdev, unsigned short address)
ICM_20948_Status_e ICM_20948_i2c_master_passthrough(ICM_20948_Device_t *pdev, bool passthrough)
ICM_20948_Status_e ICM_20948_read_FIFO(ICM_20948_Device_t *pdev, uint8_t *data, uint8_t len)
ICM_20948_Status_e ICM_20948_get_agmt(ICM_20948_Device_t *pdev, ICM_20948_AGMT_t *p)
ICM_20948_Status_e inv_icm20948_enable_dmp_sensor(ICM_20948_Device_t *pdev, enum inv_icm20948_sensor sensor, int state)
ICM_20948_Status_e ICM_20948_execute_r(ICM_20948_Device_t *pdev, uint8_t regaddr, uint8_t *pdata, uint32_t len)
ICM_20948_Status_e ICM_20948_i2c_controller_configure_peripheral(ICM_20948_Device_t *pdev, uint8_t peripheral, uint8_t addr, uint8_t reg, uint8_t len, bool Rw, bool enable, bool data_only, bool grp, bool swap, uint8_t dataOut)
ICM_20948_Status_e ICM_20948_set_dlpf_cfg(ICM_20948_Device_t *pdev, ICM_20948_InternalSensorID_bm sensors, ICM_20948_dlpcfg_t cfg)
ICM_20948_Status_e ICM_20948_i2c_master_enable(ICM_20948_Device_t *pdev, bool enable)
ICM_20948_Status_e ICM_20948_enable_dlpf(ICM_20948_Device_t *pdev, ICM_20948_InternalSensorID_bm sensors, bool enable)
ICM_20948_Status_e ICM_20948_execute_w(ICM_20948_Device_t *pdev, uint8_t regaddr, uint8_t *pdata, uint32_t len)
ICM_20948_Status_e ICM_20948_sw_reset(ICM_20948_Device_t *pdev)
ICM_20948_Status_e ICM_20948_set_sample_mode(ICM_20948_Device_t *pdev, ICM_20948_InternalSensorID_bm sensors, ICM_20948_LP_CONFIG_CYCLE_e mode)
ICM_20948_Status_e ICM_20948_firmware_load(ICM_20948_Device_t *pdev)
ICM_20948_Status_e ICM_20948_i2c_master_single_r(ICM_20948_Device_t *pdev, uint8_t addr, uint8_t reg, uint8_t *data)
ICM_20948_Status_e ICM_20948_i2c_master_single_w(ICM_20948_Device_t *pdev, uint8_t addr, uint8_t reg, uint8_t *data)
ICM_20948_Status_e ICM_20948_reset_FIFO(ICM_20948_Device_t *pdev)
ICM_20948_Status_e ICM_20948_init_struct(ICM_20948_Device_t *pdev)
ICM_20948_Status_e ICM_20948_low_power(ICM_20948_Device_t *pdev, bool on)
ICM_20948_Status_e ICM_20948_set_bank(ICM_20948_Device_t *pdev, uint8_t bank)
ICM_20948_Status_e ICM_20948_enable_DMP(ICM_20948_Device_t *pdev, bool enable)
ICM_20948_Status_e ICM_20948_link_serif(ICM_20948_Device_t *pdev, const ICM_20948_Serif_t *s)
ICM_20948_Status_e ICM_20948_wom_logic(ICM_20948_Device_t *pdev, ICM_20948_ACCEL_INTEL_CTRL_t *write, ICM_20948_ACCEL_INTEL_CTRL_t *read)
inv_icm20948_sensor
Sensor identifier for control function.
ICM_20948_PWR_MGMT_1_CLKSEL_e
ICM_20948_LP_CONFIG_CYCLE_e
ICM_20948_axis3named_t acc
ICM_20948_axis1bit16_t raw
ICM_20948_axis3named_t mag
ICM_20948_axis3named_t gyr
uint32_t _enabled_Android_0
uint32_t _enabled_Android_1
uint32_t _enabled_Android_intr_1
const ICM_20948_Serif_t * _serif
uint32_t _enabled_Android_intr_0
bool _dmp_firmware_available
uint8_t RAW_DATA_0_RDY_EN
uint8_t FIFO_OVERFLOW_EN_1
uint8_t FIFO_OVERFLOW_EN_4
uint8_t FIFO_OVERFLOW_EN_2
uint8_t FIFO_OVERFLOW_EN_0
uint8_t FIFO_OVERFLOW_EN_3
ICM_20948_axis3bit16_t raw