ICM20648 - 6-axis Motion Sensor DriverBSP > Thunderboard Sense BSP
Detailed Description
Driver for the Invensense ICM20648 6-axis motion sensor.
| Functions | |
| uint32_t | ICM20648_accelBandwidthSet (uint8_t accelBw) | 
| Sets the bandwidth of the accelerometer. | |
| uint32_t | ICM20648_accelDataRead (float *accel) | 
| Reads the raw acceleration value and converts to g value based on the actual resolution. | |
| uint32_t | ICM20648_accelFullscaleSet (uint8_t accelFs) | 
| Sets the full scale value of the accelerometer. | |
| uint32_t | ICM20648_accelGyroCalibrate (float *accelBiasScaled, float *gyroBiasScaled) | 
| Accelerometer and gyroscope calibration function. Reads the gyroscope and accelerometer values while the device is at rest and in level. The resulting values are loaded to the accel and gyro bias registers to cancel the static offset error. | |
| uint32_t | ICM20648_accelResolutionGet (float *accelRes) | 
| Gets the actual resolution of the accelerometer. | |
| float | ICM20648_accelSampleRateSet (float sampleRate) | 
| Sets the sample rate of the gyroscope. | |
| void | ICM20648_bankSelect (uint8_t bank) | 
| Select the desired register bank. | |
| uint32_t | ICM20648_cycleModeEnable (bool enable) | 
| Enables or disables the cycle mode operation of the accel and gyro. | |
| uint32_t | ICM20648_deInit (void) | 
| De-initializes the ICM20648 sensor by disconnecting the supply and SPI lines. | |
| uint32_t | ICM20648_getDeviceID (uint8_t *devID) | 
| Reads the device ID of the ICM20648. | |
| uint32_t | ICM20648_gyroBandwidthSet (uint8_t gyroBw) | 
| Sets the bandwidth of the gyroscope. | |
| uint32_t | ICM20648_gyroCalibrate (float *gyroBiasScaled) | 
| Gyroscope calibration function. Reads the gyroscope values while the device is at rest and in level. The resulting values are loaded to the gyro bias registers to cancel the static offset error. | |
| uint32_t | ICM20648_gyroDataRead (float *gyro) | 
| Reads the raw gyroscope value and converts to deg/sec value based on the actual resolution. | |
| uint32_t | ICM20648_gyroFullscaleSet (uint8_t gyroFs) | 
| Sets the full scale value of the gyroscope. | |
| uint32_t | ICM20648_gyroResolutionGet (float *gyroRes) | 
| Gets the actual resolution of the gyroscope. | |
| float | ICM20648_gyroSampleRateSet (float sampleRate) | 
| Sets the sample rate of the accelerometer. | |
| uint32_t | ICM20648_init (void) | 
| Initializes the ICM20648 sensor. Enables the power supply and SPI lines, sets up the host SPI controller, configures the chip control interface, clock generator and interrupt line. | |
| uint32_t | ICM20648_interruptEnable (bool dataReadyEnable, bool womEnable) | 
| Enables or disables the interrupts in the ICM20648 chip. | |
| uint32_t | ICM20648_interruptStatusRead (uint32_t *intStatus) | 
| Reads the interrupt status registers of the ICM20648 chip. | |
| bool | ICM20648_isDataReady (void) | 
| Checks if new data is available for read. | |
| uint32_t | ICM20648_lowPowerModeEnter (bool enAccel, bool enGyro, bool enTemp) | 
| Enables or disables the sensors in low power mode in the ICM20648 chip. | |
| void | ICM20648_registerRead (uint16_t addr, int numBytes, uint8_t *data) | 
| Reads register from the ICM20648 device. | |
| void | ICM20648_registerWrite (uint16_t addr, uint8_t data) | 
| Writes a register in the ICM20648 device. | |
| uint32_t | ICM20648_reset (void) | 
| Performs soft reset on the ICM20648 chip. | |
| uint32_t | ICM20648_sampleRateSet (float sampleRate) | 
| Sets the sample rate both of the accelerometer and the gyroscope. | |
| uint32_t | ICM20648_sensorEnable (bool accel, bool gyro, bool temp) | 
| Enables or disables the sensors in the ICM20648 chip. | |
| uint32_t | ICM20648_sleepModeEnable (bool enable) | 
| Enables or disables the sleep mode of the device. | |
| uint32_t | ICM20648_spiInit (void) | 
| Initializes the SPI bus in order to communicate with the ICM20648. | |
| uint32_t | ICM20648_temperatureRead (float *temperature) | 
| Reads the temperature sensor raw value and converts to Celsius. | |
| uint32_t | ICM20648_wakeOnMotionITEnable (bool enable, uint8_t womThreshold, float sampleRate) | 
| Sets up and enables the Wake-up On Motion feature. | |
| Error Codes | |
| #define | ICM20648_OK 0x0000 | 
| #define | ICM20648_ERROR_INVALID_DEVICE_ID 0x0001 | 
| ICM20648 register banks | |
| #define | ICM20648_BANK_0 (0 << 7) | 
| #define | ICM20648_BANK_1 (1 << 7) | 
| #define | ICM20648_BANK_2 (2 << 7) | 
| #define | ICM20648_BANK_3 (3 << 7) | 
Macro Definition Documentation
| #define ICM20648_ACCEL_BW_111HZ ( (0x02 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE) | 
Accel Bandwidth = 111 Hz
        Definition at line
        
         218
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_ACCEL_BW_1210HZ (0x00 << ICM20648_SHIFT_ACCEL_DLPCFG) | 
Accel Bandwidth = 1210 Hz
        Definition at line
        
         215
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_wakeOnMotionITEnable() , and IMU_config() .
| #define ICM20648_ACCEL_BW_12HZ ( (0x05 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE) | 
Accel Bandwidth = 12 Hz
        Definition at line
        
         221
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_ACCEL_BW_246HZ ( (0x00 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE) | 
Accel Bandwidth = 246 Hz
        Definition at line
        
         217
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() .
| #define ICM20648_ACCEL_BW_24HZ ( (0x04 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE) | 
Accel Bandwidth = 24 Hz
        Definition at line
        
         220
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_ACCEL_BW_470HZ ( (0x07 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE) | 
Accel Bandwidth = 470 Hz
        Definition at line
        
         216
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_ACCEL_BW_50HZ ( (0x03 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE) | 
Accel Bandwidth = 50 Hz
        Definition at line
        
         219
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_ACCEL_BW_6HZ ( (0x06 << ICM20648_SHIFT_ACCEL_DLPCFG) | ICM20648_BIT_ACCEL_FCHOICE) | 
Accel Bandwidth = 6 Hz
        Definition at line
        
         222
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_ACCEL_FULLSCALE_16G (0x03 << ICM20648_SHIFT_ACCEL_FS) | 
Accel Full Scale = 16 g
        Definition at line
        
         214
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelResolutionGet() .
| #define ICM20648_ACCEL_FULLSCALE_2G (0x00 << ICM20648_SHIFT_ACCEL_FS) | 
Accel Full Scale = 2 g
        Definition at line
        
         211
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_accelResolutionGet() , ICM20648_wakeOnMotionITEnable() , and IMU_config() .
| #define ICM20648_ACCEL_FULLSCALE_4G (0x01 << ICM20648_SHIFT_ACCEL_FS) | 
Accel Full Scale = 4 g
        Definition at line
        
         212
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelResolutionGet() .
| #define ICM20648_ACCEL_FULLSCALE_8G (0x02 << ICM20648_SHIFT_ACCEL_FS) | 
Accel Full Scale = 8 g
        Definition at line
        
         213
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelResolutionGet() .
| #define ICM20648_BANK_0 (0 << 7) | 
Register bank 0
        Definition at line
        
         44
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BANK_1 (1 << 7) | 
Register bank 1
        Definition at line
        
         45
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BANK_2 (2 << 7) | 
Register bank 2
        Definition at line
        
         46
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BANK_3 (3 << 7) | 
Register bank 3
        Definition at line
        
         47
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_ACCEL_CTEN 0x1C | 
Accelerometer Self-Test Enable bits
        Definition at line
        
         225
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_ACCEL_CYCLE 0x20 | 
Accelerometer cycle mode enable
        Definition at line
        
         69
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_cycleModeEnable() .
| #define ICM20648_BIT_ACCEL_FCHOICE 0x01 | 
Accel Digital Low-Pass Filter enable bit
        Definition at line
        
         206
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_ACCEL_FIFO_EN 0x10 | 
Enable writing acceleration data to FIFO bit
        Definition at line
        
         130
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() .
| #define ICM20648_BIT_ACCEL_INTEL_EN 0x02 | 
Wake-up On Motion enable bit
        Definition at line
        
         200
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_wakeOnMotionITEnable() .
| #define ICM20648_BIT_ACCEL_INTEL_MODE 0x01 | 
WOM algorithm selection bit
        Definition at line
        
         201
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_wakeOnMotionITEnable() .
| #define ICM20648_BIT_CLK_PLL 0x01 | 
Auto clock source selection setting
        Definition at line
        
         77
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_init() .
| #define ICM20648_BIT_DIAMOND_DMP_RST 0x04 | 
SRAM module reset bit
        Definition at line
        
         65
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_DMP_EN 0x80 | 
DMP enable bit
        Definition at line
        
         60
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_DMP_RST 0x08 | 
DMP module reset bit
        Definition at line
        
         64
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_FIFO_EN 0x40 | 
FIFO enable bit
        Definition at line
        
         61
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_BIT_FIFO_OVERFLOW_EN_0 0x01 | 
FIFO overflow interrupt enable bit
        Definition at line
        
         96
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_GYRO_CTEN 0x38 | 
Gyroscope Self-Test Enable bits
        Definition at line
        
         185
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_GYRO_CYCLE 0x10 | 
Gyroscope cycle mode enable
        Definition at line
        
         70
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_cycleModeEnable() .
| #define ICM20648_BIT_GYRO_FCHOICE 0x01 | 
Gyro Digital Low-Pass Filter enable bit
        Definition at line
        
         165
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_H_RESET 0x80 | 
| #define ICM20648_BIT_I2C_BYTE_SW 0x40 | 
I2C Slave Byte Swap enable bit
        Definition at line
        
         268
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_I2C_GRP 0x10 | 
I2C Slave Group bit
        Definition at line
        
         270
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_I2C_IF_DIS 0x10 | 
Disable I2C, enable SPI bit
        Definition at line
        
         63
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_init() .
| #define ICM20648_BIT_I2C_MST_CYCLE 0x40 | 
I2C master cycle mode enable
        Definition at line
        
         68
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_I2C_MST_EN 0x20 | 
I2C master I/F enable bit
        Definition at line
        
         62
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_I2C_MST_P_NSR 0x10 | 
Stop between reads enabling bit
        Definition at line
        
         233
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_I2C_READ 0x80 | 
I2C Slave R/W bit
        Definition at line
        
         271
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_I2C_REG_DIS 0x20 | 
I2C Slave Do Not Write Register Value bit
        Definition at line
        
         269
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_I2C_SLV_EN 0x80 | 
I2C Slave Enable bit
        Definition at line
        
         267
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_INT_ACTL 0x80 | 
| #define ICM20648_BIT_INT_LATCH_EN 0x20 | 
Latch enable bit
        Definition at line
        
         87
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_INT_OPEN 0x40 | 
Open collector onfiguration bit
        Definition at line
        
         86
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_init() .
| #define ICM20648_BIT_LP_EN 0x20 | 
Low Power feature enable bit
        Definition at line
        
         75
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_lowPowerModeEnter() .
| #define ICM20648_BIT_MULTI_FIFO_CFG 0x01 | 
Interrupt status for each sensor is required
        Definition at line
        
         144
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_PLL_RDY 0x04 | 
PLL ready interrupt occured bit
        Definition at line
        
         102
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_PWR_ACCEL_STBY 0x38 | 
Disable accelerometer
        Definition at line
        
         80
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_sensorEnable() .
| #define ICM20648_BIT_PWR_ALL_OFF 0x7F | 
Disable both accel and gyro
        Definition at line
        
         82
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_PWR_GYRO_STBY 0x07 | 
Disable gyroscope
        Definition at line
        
         81
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_sensorEnable() .
| #define ICM20648_BIT_RAW_DATA_0_RDY 0x01 | 
Raw Data Ready bit
        Definition at line
        
         141
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_RAW_DATA_0_RDY_EN 0x01 | 
Raw data ready interrupt enable bit
        Definition at line
        
         93
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_interruptEnable() .
| #define ICM20648_BIT_RAW_DATA_0_RDY_INT 0x01 | 
Raw data ready interrupt occured bit
        Definition at line
        
         105
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_isDataReady() .
| #define ICM20648_BIT_SINGLE_FIFO_CFG 0x00 | 
Interrupt status for only a single sensor is required
        Definition at line
        
         145
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_SLEEP 0x40 | 
Sleep mode enable bit
        Definition at line
        
         74
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_sleepModeEnable() .
| #define ICM20648_BIT_SLV0_DLY_EN 0x01 | 
I2C Slave0 Delay Enable bit
        Definition at line
        
         236
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_SLV1_DLY_EN 0x02 | 
I2C Slave1 Delay Enable bit
        Definition at line
        
         237
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_SLV2_DLY_EN 0x04 | 
I2C Slave2 Delay Enable bit
        Definition at line
        
         238
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_SLV3_DLY_EN 0x08 | 
I2C Slave3 Delay Enable bit
        Definition at line
        
         239
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_TEMP_DIS 0x08 | 
Temperature sensor disable bit
        Definition at line
        
         76
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_sensorEnable() .
| #define ICM20648_BIT_WOM_INT 0x08 | 
Wake-up on motion interrupt occured bit
        Definition at line
        
         101
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_BIT_WOM_INT_EN 0x08 | 
Wake-up On Motion enable bit
        Definition at line
        
         90
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_interruptEnable() .
| #define ICM20648_BITS_GYRO_FIFO_EN 0x0E | 
Enable writing gyroscope data to FIFO bit
        Definition at line
        
         131
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_DEVICE_ID 0xE0 | 
ICM20648 Device ID value
        Definition at line
        
         276
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_init() .
| #define ICM20648_ERROR_INVALID_DEVICE_ID 0x0001 | 
| #define ICM20648_GYRO_BW_120HZ ( (0x02 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE) | 
Gyro Bandwidth = 120 Hz
        Definition at line
        
         178
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_GYRO_BW_12100HZ (0x00 << ICM20648_SHIFT_GYRO_DLPCFG) | 
Gyro Bandwidth = 12100 Hz
        Definition at line
        
         174
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_GYRO_BW_12HZ ( (0x05 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE) | 
Gyro Bandwidth = 12 Hz
        Definition at line
        
         181
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_GYRO_BW_150HZ ( (0x01 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE) | 
Gyro Bandwidth = 150 Hz
        Definition at line
        
         177
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_GYRO_BW_200HZ ( (0x00 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE) | 
Gyro Bandwidth = 200 Hz
        Definition at line
        
         176
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_GYRO_BW_24HZ ( (0x04 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE) | 
Gyro Bandwidth = 24 Hz
        Definition at line
        
         180
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_GYRO_BW_360HZ ( (0x07 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE) | 
Gyro Bandwidth = 360 Hz
        Definition at line
        
         175
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_GYRO_BW_51HZ ( (0x03 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE) | 
| #define ICM20648_GYRO_BW_6HZ ( (0x06 << ICM20648_SHIFT_GYRO_DLPCFG) | ICM20648_BIT_GYRO_FCHOICE) | 
Gyro Bandwidth = 6 Hz
        Definition at line
        
         182
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_GYRO_FULLSCALE_1000DPS (0x02 << ICM20648_SHIFT_GYRO_FS_SEL) | 
Gyro Full Scale = 1000 deg/sec
        Definition at line
        
         172
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_gyroResolutionGet() .
| #define ICM20648_GYRO_FULLSCALE_2000DPS (0x03 << ICM20648_SHIFT_GYRO_FS_SEL) | 
Gyro Full Scale = 2000 deg/sec
        Definition at line
        
         173
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_gyroResolutionGet() .
| #define ICM20648_GYRO_FULLSCALE_250DPS (0x00 << ICM20648_SHIFT_GYRO_FS_SEL) | 
Gyro Full Scale = 250 deg/sec
        Definition at line
        
         170
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_gyroCalibrate() , ICM20648_gyroResolutionGet() , and IMU_config() .
| #define ICM20648_GYRO_FULLSCALE_500DPS (0x01 << ICM20648_SHIFT_GYRO_FS_SEL) | 
Gyro Full Scale = 500 deg/sec
        Definition at line
        
         171
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_gyroResolutionGet() .
| #define ICM20648_MASK_ACCEL_BW 0x39 | 
Accel Bandwidth Select bitmask
        Definition at line
        
         210
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelBandwidthSet() .
| #define ICM20648_MASK_ACCEL_FULLSCALE 0x06 | 
Accel Full Scale Select bitmask
        Definition at line
        
         209
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelFullscaleSet() , and ICM20648_accelResolutionGet() .
| #define ICM20648_MASK_GYRO_BW 0x39 | 
Gyro Bandwidth Select bitmask
        Definition at line
        
         169
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_gyroBandwidthSet() .
| #define ICM20648_MASK_GYRO_FULLSCALE 0x06 | 
Gyro Full Scale Select bitmask
        Definition at line
        
         168
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_gyroFullscaleSet() , and ICM20648_gyroResolutionGet() .
| #define ICM20648_OK 0x0000 | 
No errors
        Definition at line
        
         36
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelBandwidthSet() , ICM20648_accelDataRead() , ICM20648_accelFullscaleSet() , ICM20648_accelGyroCalibrate() , ICM20648_accelResolutionGet() , ICM20648_cycleModeEnable() , ICM20648_deInit() , ICM20648_getDeviceID() , ICM20648_gyroBandwidthSet() , ICM20648_gyroCalibrate() , ICM20648_gyroDataRead() , ICM20648_gyroFullscaleSet() , ICM20648_gyroResolutionGet() , ICM20648_init() , ICM20648_interruptEnable() , ICM20648_interruptStatusRead() , ICM20648_lowPowerModeEnter() , ICM20648_reset() , ICM20648_sampleRateSet() , ICM20648_sensorEnable() , ICM20648_sleepModeEnable() , ICM20648_spiInit() , ICM20648_temperatureRead() , ICM20648_wakeOnMotionITEnable() , and IMU_init() .
| #define ICM20648_REG_ACCEL_CONFIG ( ICM20648_BANK_2 | 0x14) | 
Accelerometer Configuration register
        Definition at line
        
         205
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelBandwidthSet() , ICM20648_accelFullscaleSet() , and ICM20648_accelResolutionGet() .
| #define ICM20648_REG_ACCEL_CONFIG_2 ( ICM20648_BANK_2 | 0x15) | 
Accelerometer Configuration 2 register
        Definition at line
        
         224
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_ACCEL_INTEL_CTRL ( ICM20648_BANK_2 | 0x12) | 
Accelerometer Hardware Intelligence Control register
        Definition at line
        
         199
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_wakeOnMotionITEnable() .
| #define ICM20648_REG_ACCEL_SMPLRT_DIV_1 ( ICM20648_BANK_2 | 0x10) | 
Acceleration Sensor Sample Rate Divider 1 register
        Definition at line
        
         196
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelSampleRateSet() .
| #define ICM20648_REG_ACCEL_SMPLRT_DIV_2 ( ICM20648_BANK_2 | 0x11) | 
Acceleration Sensor Sample Rate Divider 2 register
        Definition at line
        
         197
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelSampleRateSet() .
| #define ICM20648_REG_ACCEL_WOM_THR ( ICM20648_BANK_2 | 0x13) | 
Wake-up On Motion Threshold register
        Definition at line
        
         203
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_wakeOnMotionITEnable() .
| #define ICM20648_REG_ACCEL_XOUT_H_SH ( ICM20648_BANK_0 | 0x2D) | 
Accelerometer X-axis data high byte
        Definition at line
        
         109
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelDataRead() .
| #define ICM20648_REG_ACCEL_XOUT_L_SH ( ICM20648_BANK_0 | 0x2E) | 
Accelerometer X-axis data low byte
        Definition at line
        
         110
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_ACCEL_YOUT_H_SH ( ICM20648_BANK_0 | 0x2F) | 
Accelerometer Y-axis data high byte
        Definition at line
        
         111
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_ACCEL_YOUT_L_SH ( ICM20648_BANK_0 | 0x30) | 
Accelerometer Y-axis data low byte
        Definition at line
        
         112
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_ACCEL_ZOUT_H_SH ( ICM20648_BANK_0 | 0x31) | 
Accelerometer Z-axis data high byte
        Definition at line
        
         113
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_ACCEL_ZOUT_L_SH ( ICM20648_BANK_0 | 0x32) | 
Accelerometer Z-axis data low byte
        Definition at line
        
         114
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_BANK_SEL 0x7F | 
Bank Select register
        Definition at line
        
         274
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_bankSelect() .
| #define ICM20648_REG_DATA_RDY_STATUS ( ICM20648_BANK_0 | 0x74) | 
Data Ready Status register
        Definition at line
        
         140
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_FIFO_CFG ( ICM20648_BANK_0 | 0x76) | 
FIFO Configuration register
        Definition at line
        
         143
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_FIFO_COUNT_H ( ICM20648_BANK_0 | 0x70) | 
FIFO data count high byte
        Definition at line
        
         136
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_FIFO_COUNT_L ( ICM20648_BANK_0 | 0x71) | 
FIFO data count low byte
        Definition at line
        
         137
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_FIFO_EN_1 ( ICM20648_BANK_0 | 0x66) | 
FIFO Enable 1 register
        Definition at line
        
         127
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_FIFO_EN_2 ( ICM20648_BANK_0 | 0x67) | 
FIFO Enable 2 register
        Definition at line
        
         129
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_FIFO_MODE ( ICM20648_BANK_0 | 0x69) | 
FIFO Mode register
        Definition at line
        
         134
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_FIFO_R_W ( ICM20648_BANK_0 | 0x72) | 
FIFO Read/Write register
        Definition at line
        
         138
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_FIFO_RST ( ICM20648_BANK_0 | 0x68) | 
FIFO Reset register
        Definition at line
        
         133
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_GYRO_CONFIG_1 ( ICM20648_BANK_2 | 0x01) | 
Gyroscope Configuration 1 register
        Definition at line
        
         164
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_gyroBandwidthSet() , ICM20648_gyroFullscaleSet() , and ICM20648_gyroResolutionGet() .
| #define ICM20648_REG_GYRO_CONFIG_2 ( ICM20648_BANK_2 | 0x02) | 
Gyroscope Configuration 2 register
        Definition at line
        
         184
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_GYRO_SMPLRT_DIV ( ICM20648_BANK_2 | 0x00) | 
Gyroscope Sample Rate Divider regiser
        Definition at line
        
         162
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_gyroSampleRateSet() .
| #define ICM20648_REG_GYRO_XOUT_H_SH ( ICM20648_BANK_0 | 0x33) | 
Gyroscope X-axis data high byte
        Definition at line
        
         116
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_gyroDataRead() .
| #define ICM20648_REG_GYRO_XOUT_L_SH ( ICM20648_BANK_0 | 0x34) | 
Gyroscope X-axis data low byte
        Definition at line
        
         117
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_GYRO_YOUT_H_SH ( ICM20648_BANK_0 | 0x35) | 
Gyroscope Y-axis data high byte
        Definition at line
        
         118
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_GYRO_YOUT_L_SH ( ICM20648_BANK_0 | 0x36) | 
Gyroscope Y-axis data low byte
        Definition at line
        
         119
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_GYRO_ZOUT_H_SH ( ICM20648_BANK_0 | 0x37) | 
Gyroscope Z-axis data high byte
        Definition at line
        
         120
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_GYRO_ZOUT_L_SH ( ICM20648_BANK_0 | 0x38) | 
Gyroscope Z-axis data low byte
        Definition at line
        
         121
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_MST_CTRL ( ICM20648_BANK_3 | 0x01) | 
I2C Master Control register
        Definition at line
        
         232
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_MST_DELAY_CTRL ( ICM20648_BANK_3 | 0x02) | 
I2C Master Delay Control register
        Definition at line
        
         235
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_MST_ODR_CONFIG ( ICM20648_BANK_3 | 0x00) | 
I2C Master Output Data Rate Configuration register
        Definition at line
        
         230
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV0_ADDR ( ICM20648_BANK_3 | 0x03) | 
I2C Slave0 Physical Address register
        Definition at line
        
         241
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV0_CTRL ( ICM20648_BANK_3 | 0x05) | 
I2C Slave0 Control register
        Definition at line
        
         243
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV0_DO ( ICM20648_BANK_3 | 0x06) | 
I2C Slave0 Data Out register
        Definition at line
        
         244
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV0_REG ( ICM20648_BANK_3 | 0x04) | 
I2C Slave0 Register Address register
        Definition at line
        
         242
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV1_ADDR ( ICM20648_BANK_3 | 0x07) | 
I2C Slave1 Physical Address register
        Definition at line
        
         246
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV1_CTRL ( ICM20648_BANK_3 | 0x09) | 
I2C Slave1 Control register
        Definition at line
        
         248
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV1_DO ( ICM20648_BANK_3 | 0x0A) | 
I2C Slave1 Data Out register
        Definition at line
        
         249
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV1_REG ( ICM20648_BANK_3 | 0x08) | 
I2C Slave1 Register Address register
        Definition at line
        
         247
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV2_ADDR ( ICM20648_BANK_3 | 0x0B) | 
I2C Slave2 Physical Address register
        Definition at line
        
         251
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV2_CTRL ( ICM20648_BANK_3 | 0x0D) | 
I2C Slave2 Control register
        Definition at line
        
         253
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV2_DO ( ICM20648_BANK_3 | 0x0E) | 
I2C Slave2 Data Out register
        Definition at line
        
         254
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV2_REG ( ICM20648_BANK_3 | 0x0C) | 
I2C Slave2 Register Address register
        Definition at line
        
         252
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV3_ADDR ( ICM20648_BANK_3 | 0x0F) | 
I2C Slave3 Physical Address register
        Definition at line
        
         256
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV3_CTRL ( ICM20648_BANK_3 | 0x11) | 
I2C Slave3 Control register
        Definition at line
        
         258
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV3_DO ( ICM20648_BANK_3 | 0x12) | 
I2C Slave3 Data Out register
        Definition at line
        
         259
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV3_REG ( ICM20648_BANK_3 | 0x10) | 
I2C Slave3 Register Address register
        Definition at line
        
         257
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV4_ADDR ( ICM20648_BANK_3 | 0x13) | 
I2C Slave4 Physical Address register
        Definition at line
        
         261
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV4_CTRL ( ICM20648_BANK_3 | 0x15) | 
I2C Slave4 Control register
        Definition at line
        
         263
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV4_DI ( ICM20648_BANK_3 | 0x17) | 
I2C Slave4 Data In register
        Definition at line
        
         265
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV4_DO ( ICM20648_BANK_3 | 0x16) | 
I2C Slave4 Data Out register
        Definition at line
        
         264
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_I2C_SLV4_REG ( ICM20648_BANK_3 | 0x14) | 
I2C Slave4 Register Address register
        Definition at line
        
         262
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_INT_ENABLE ( ICM20648_BANK_0 | 0x10) | 
Interrupt Enable register
        Definition at line
        
         89
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_interruptEnable() .
| #define ICM20648_REG_INT_ENABLE_1 ( ICM20648_BANK_0 | 0x11) | 
Interrupt Enable 1 register
        Definition at line
        
         92
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_interruptEnable() .
| #define ICM20648_REG_INT_ENABLE_2 ( ICM20648_BANK_0 | 0x12) | 
Interrupt Enable 2 register
        Definition at line
        
         95
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_INT_ENABLE_3 ( ICM20648_BANK_0 | 0x13) | 
Interrupt Enable 2 register
        Definition at line
        
         98
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_INT_PIN_CFG ( ICM20648_BANK_0 | 0x0F) | 
Interrupt Pin Configuration register
        Definition at line
        
         84
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_init() .
| #define ICM20648_REG_INT_STATUS ( ICM20648_BANK_0 | 0x19) | 
Interrupt Status register
        Definition at line
        
         100
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_interruptStatusRead() .
| #define ICM20648_REG_INT_STATUS_1 ( ICM20648_BANK_0 | 0x1A) | 
Interrupt Status 1 register
        Definition at line
        
         104
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_isDataReady() .
| #define ICM20648_REG_INT_STATUS_2 ( ICM20648_BANK_0 | 0x1B) | 
Interrupt Status 2 register
        Definition at line
        
         107
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_LP_CONFIG ( ICM20648_BANK_0 | 0x05) | 
Low Power mode config register
        Definition at line
        
         67
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_cycleModeEnable() .
| #define ICM20648_REG_ODR_ALIGN_EN ( ICM20648_BANK_2 | 0x09) | 
Output Data Rate start time alignment
        Definition at line
        
         194
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_PWR_MGMT_1 ( ICM20648_BANK_0 | 0x06) | 
Power Management 1 register
        Definition at line
        
         72
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_init() , ICM20648_lowPowerModeEnter() , ICM20648_reset() , ICM20648_sensorEnable() , and ICM20648_sleepModeEnable() .
| #define ICM20648_REG_PWR_MGMT_2 ( ICM20648_BANK_0 | 0x07) | 
Power Management 2 register
        Definition at line
        
         79
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_sensorEnable() .
| #define ICM20648_REG_TEMP_CONFIG ( ICM20648_BANK_0 | 0x53) | 
Temperature Configuration register
        Definition at line
        
         125
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_TEMPERATURE_H ( ICM20648_BANK_0 | 0x39) | 
Temperature data high byte
        Definition at line
        
         123
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_temperatureRead() .
| #define ICM20648_REG_TEMPERATURE_L ( ICM20648_BANK_0 | 0x3A) | 
Temperature data low byte
        Definition at line
        
         124
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_TIMEBASE_CORR_PLL ( ICM20648_BANK_1 | 0x28) | 
PLL Timebase Correction register
        Definition at line
        
         157
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_REG_USER_CTRL ( ICM20648_BANK_0 | 0x03) | 
User control register
        Definition at line
        
         59
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_gyroCalibrate() , and ICM20648_init() .
| #define ICM20648_REG_WHO_AM_I ( ICM20648_BANK_0 | 0x00) | 
Device ID register
        Definition at line
        
         57
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_getDeviceID() , and ICM20648_init() .
| #define ICM20648_REG_XA_OFFSET_H ( ICM20648_BANK_1 | 0x14) | 
Acceleration sensor X-axis offset cancellation high byte
        Definition at line
        
         150
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() .
| #define ICM20648_REG_XA_OFFSET_L ( ICM20648_BANK_1 | 0x15) | 
Acceleration sensor X-axis offset cancellation low byte
        Definition at line
        
         151
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() .
| #define ICM20648_REG_XG_OFFS_USRH ( ICM20648_BANK_2 | 0x03) | 
Gyroscope sensor X-axis offset cancellation high byte
        Definition at line
        
         187
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_XG_OFFS_USRL ( ICM20648_BANK_2 | 0x04) | 
Gyroscope sensor X-axis offset cancellation low byte
        Definition at line
        
         188
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_YA_OFFSET_H ( ICM20648_BANK_1 | 0x17) | 
Acceleration sensor Y-axis offset cancellation high byte
        Definition at line
        
         152
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() .
| #define ICM20648_REG_YA_OFFSET_L ( ICM20648_BANK_1 | 0x18) | 
Acceleration sensor Y-axis offset cancellation low byte
        Definition at line
        
         153
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() .
| #define ICM20648_REG_YG_OFFS_USRH ( ICM20648_BANK_2 | 0x05) | 
Gyroscope sensor Y-axis offset cancellation high byte
        Definition at line
        
         189
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_YG_OFFS_USRL ( ICM20648_BANK_2 | 0x06) | 
Gyroscope sensor Y-axis offset cancellation low byte
        Definition at line
        
         190
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_ZA_OFFSET_H ( ICM20648_BANK_1 | 0x1A) | 
Acceleration sensor Z-axis offset cancellation high byte
        Definition at line
        
         154
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() .
| #define ICM20648_REG_ZA_OFFSET_L ( ICM20648_BANK_1 | 0x1B) | 
Acceleration sensor Z-axis offset cancellation low byte
        Definition at line
        
         155
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() .
| #define ICM20648_REG_ZG_OFFS_USRH ( ICM20648_BANK_2 | 0x07) | 
Gyroscope sensor Z-axis offset cancellation high byte
        Definition at line
        
         191
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_REG_ZG_OFFS_USRL ( ICM20648_BANK_2 | 0x08) | 
Gyroscope sensor Z-axis offset cancellation low byte
        Definition at line
        
         192
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_accelGyroCalibrate() , and ICM20648_gyroCalibrate() .
| #define ICM20648_SHIFT_ACCEL_DLPCFG 3 | 
Accel DLPF Config bit shift
        Definition at line
        
         208
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_SHIFT_ACCEL_FS 1 | 
Accel Full Scale Select bit shift
        Definition at line
        
         207
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_SHIFT_GYRO_DLPCFG 3 | 
Gyro DLPF Config bit shift
        Definition at line
        
         167
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20648_SHIFT_GYRO_FS_SEL 1 | 
Gyro Full Scale Select bit shift
        Definition at line
        
         166
        
        of file
        
         icm20648.h
        
        .
       
| #define ICM20948_DEVICE_ID 0xEA | 
ICM20948 Device ID value
        Definition at line
        
         277
        
        of file
        
         icm20648.h
        
        .
       
Referenced by ICM20648_init() .
Function Documentation
| uint32_t ICM20648_accelBandwidthSet | ( | uint8_t | 
            accelBw
            | ) | 
Sets the bandwidth of the accelerometer.
- Parameters
- 
         [in] accelBwThe desired bandwidth value. Use the ICM20648_ACCEL_BW_yHZ macros, which are defined in the icm20648.hfile. The value of y can be 6, 12, 24, 50, 111, 246, 470 or 1210.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         461
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_MASK_ACCEL_BW , ICM20648_OK , ICM20648_REG_ACCEL_CONFIG , ICM20648_registerRead() , and ICM20648_registerWrite() .
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_wakeOnMotionITEnable() , and IMU_config() .
| uint32_t ICM20648_accelDataRead | ( | float * | 
            accel
            | ) | 
Reads the raw acceleration value and converts to g value based on the actual resolution.
- Parameters
- 
         [out] accelA 3-element array of float numbers containing the acceleration values for the x, y and z axes in g units. 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         137
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_accelResolutionGet() , ICM20648_OK , ICM20648_REG_ACCEL_XOUT_H_SH , and ICM20648_registerRead() .
Referenced by IMU_getAccelerometerData() .
| uint32_t ICM20648_accelFullscaleSet | ( | uint8_t | 
            accelFs
            | ) | 
Sets the full scale value of the accelerometer.
- Parameters
- 
         [in] accelFsThe desired full scale value. Use the ICM20648_ACCEL_FULLSCALE_xG macros, which are defined in the icm20648.hfile. The value of x can be 2, 4, 8 or 16.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         287
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_MASK_ACCEL_FULLSCALE , ICM20648_OK , ICM20648_REG_ACCEL_CONFIG , ICM20648_registerRead() , and ICM20648_registerWrite() .
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_wakeOnMotionITEnable() , and IMU_config() .
| uint32_t ICM20648_accelGyroCalibrate | ( | float * | 
            accelBiasScaled,
            | 
| float * | 
            gyroBiasScaled
            | ||
| ) | 
Accelerometer and gyroscope calibration function. Reads the gyroscope and accelerometer values while the device is at rest and in level. The resulting values are loaded to the accel and gyro bias registers to cancel the static offset error.
- Parameters
- 
         [out] accelBiasScaledThe mesured acceleration sensor bias in mg [out] gyroBiasScaledThe mesured gyro sensor bias in deg/sec 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         801
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_ACCEL_BW_246HZ , ICM20648_ACCEL_FULLSCALE_2G , ICM20648_accelBandwidthSet() , ICM20648_accelFullscaleSet() , ICM20648_accelResolutionGet() , ICM20648_BIT_ACCEL_FIFO_EN , ICM20648_BIT_FIFO_EN , ICM20648_BITS_GYRO_FIFO_EN , ICM20648_GYRO_BW_12HZ , ICM20648_GYRO_FULLSCALE_250DPS , ICM20648_gyroBandwidthSet() , ICM20648_gyroFullscaleSet() , ICM20648_gyroResolutionGet() , ICM20648_OK , ICM20648_REG_FIFO_COUNT_H , ICM20648_REG_FIFO_EN_2 , ICM20648_REG_FIFO_MODE , ICM20648_REG_FIFO_R_W , ICM20648_REG_FIFO_RST , ICM20648_REG_USER_CTRL , ICM20648_REG_XA_OFFSET_H , ICM20648_REG_XA_OFFSET_L , ICM20648_REG_XG_OFFS_USRH , ICM20648_REG_XG_OFFS_USRL , ICM20648_REG_YA_OFFSET_H , ICM20648_REG_YA_OFFSET_L , ICM20648_REG_YG_OFFS_USRH , ICM20648_REG_YG_OFFS_USRL , ICM20648_REG_ZA_OFFSET_H , ICM20648_REG_ZA_OFFSET_L , ICM20648_REG_ZG_OFFS_USRH , ICM20648_REG_ZG_OFFS_USRL , ICM20648_registerRead() , ICM20648_registerWrite() , ICM20648_sampleRateSet() , ICM20648_sensorEnable() , and UTIL_delay() .
| uint32_t ICM20648_accelResolutionGet | ( | float * | 
            accelRes
            | ) | 
Gets the actual resolution of the accelerometer.
- Parameters
- 
         [out] accelResThe resolution in g/bit units 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         205
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_ACCEL_FULLSCALE_16G , ICM20648_ACCEL_FULLSCALE_2G , ICM20648_ACCEL_FULLSCALE_4G , ICM20648_ACCEL_FULLSCALE_8G , ICM20648_MASK_ACCEL_FULLSCALE , ICM20648_OK , ICM20648_REG_ACCEL_CONFIG , and ICM20648_registerRead() .
Referenced by ICM20648_accelDataRead() , and ICM20648_accelGyroCalibrate() .
| float ICM20648_accelSampleRateSet | ( | float | 
            sampleRate
            | ) | 
Sets the sample rate of the gyroscope.
- Parameters
- 
         [in] sampleRateThe desired sample rate in Hz 
- Returns
- The actual sample rate. May be different from the desired value because of the finite and discrete number of divider settings
        Definition at line
        
         394
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_REG_ACCEL_SMPLRT_DIV_1 , ICM20648_REG_ACCEL_SMPLRT_DIV_2 , and ICM20648_registerWrite() .
Referenced by ICM20648_sampleRateSet() , and IMU_config() .
| void ICM20648_bankSelect | ( | uint8_t | 
            bank
            | ) | 
Select the desired register bank.
- Parameters
- 
         [in] bankThe address of the register bank (0..3) 
- Returns
- None
        Definition at line
        
         1324
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_REG_BANK_SEL , USART_Rx() , and USART_Tx() .
Referenced by ICM20648_registerRead() , and ICM20648_registerWrite() .
| uint32_t ICM20648_cycleModeEnable | ( | bool | 
            enable
            | ) | 
Enables or disables the cycle mode operation of the accel and gyro.
- Parameters
- 
         [in] enableIf true both the accel and gyro sensors will operate in cycle mode. If false the senors working in continuous mode. 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         516
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_BIT_ACCEL_CYCLE , ICM20648_BIT_GYRO_CYCLE , ICM20648_OK , ICM20648_REG_LP_CONFIG , and ICM20648_registerWrite() .
Referenced by ICM20648_lowPowerModeEnter() , and ICM20648_wakeOnMotionITEnable() .
| uint32_t ICM20648_deInit | ( | void | 
            | ) | 
De-initializes the ICM20648 sensor by disconnecting the supply and SPI lines.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         99
        
        of file
        
         icm20648.c
        
        .
       
References BOARD_imuEnable() , and ICM20648_OK .
Referenced by IMU_deInit() , and IMU_init() .
| uint32_t ICM20648_getDeviceID | ( | uint8_t * | 
            devID
            | ) | 
Reads the device ID of the ICM20648.
- Parameters
- 
         [out] devIDThe ID of the device read from teh WHO_AM_I register. Expected value? 0xE0 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         1181
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_OK , ICM20648_REG_WHO_AM_I , and ICM20648_registerRead() .
Referenced by IMU_init() .
| uint32_t ICM20648_gyroBandwidthSet | ( | uint8_t | 
            gyroBw
            | ) | 
Sets the bandwidth of the gyroscope.
- Parameters
- 
         [in] gyroBwThe desired bandwidth value. Use the ICM20648_GYRO_BW_xHZ macros, which are defined in the icm20648.hfile. The value of x can be 6, 12, 24, 51, 120, 150, 200, 360 or 12100.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         434
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_MASK_GYRO_BW , ICM20648_OK , ICM20648_REG_GYRO_CONFIG_1 , ICM20648_registerRead() , and ICM20648_registerWrite() .
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_gyroCalibrate() , and IMU_config() .
| uint32_t ICM20648_gyroCalibrate | ( | float * | 
            gyroBiasScaled
            | ) | 
Gyroscope calibration function. Reads the gyroscope values while the device is at rest and in level. The resulting values are loaded to the gyro bias registers to cancel the static offset error.
- Parameters
- 
         [out] gyroBiasScaledThe mesured gyro sensor bias in deg/sec 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         1010
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_BIT_FIFO_EN , ICM20648_BITS_GYRO_FIFO_EN , ICM20648_GYRO_BW_12HZ , ICM20648_GYRO_FULLSCALE_250DPS , ICM20648_gyroBandwidthSet() , ICM20648_gyroFullscaleSet() , ICM20648_gyroResolutionGet() , ICM20648_OK , ICM20648_REG_FIFO_COUNT_H , ICM20648_REG_FIFO_EN_2 , ICM20648_REG_FIFO_MODE , ICM20648_REG_FIFO_R_W , ICM20648_REG_FIFO_RST , ICM20648_REG_USER_CTRL , ICM20648_REG_XG_OFFS_USRH , ICM20648_REG_XG_OFFS_USRL , ICM20648_REG_YG_OFFS_USRH , ICM20648_REG_YG_OFFS_USRL , ICM20648_REG_ZG_OFFS_USRH , ICM20648_REG_ZG_OFFS_USRL , ICM20648_registerRead() , ICM20648_registerWrite() , ICM20648_sampleRateSet() , ICM20648_sensorEnable() , and UTIL_delay() .
Referenced by IMU_init() .
| uint32_t ICM20648_gyroDataRead | ( | float * | 
            gyro
            | ) | 
Reads the raw gyroscope value and converts to deg/sec value based on the actual resolution.
- Parameters
- 
         [out] gyroA 3-element array of float numbers containing the gyroscope values for the x, y and z axes in deg/sec units. 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         172
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_gyroResolutionGet() , ICM20648_OK , ICM20648_REG_GYRO_XOUT_H_SH , and ICM20648_registerRead() .
Referenced by IMU_getGyroData() .
| uint32_t ICM20648_gyroFullscaleSet | ( | uint8_t | 
            gyroFs
            | ) | 
Sets the full scale value of the gyroscope.
- Parameters
- 
         [in] gyroFsThe desired full scale value. Use the ICM20648_GYRO_FULLSCALE_yDPS macros, which are defined in the icm20648.hfile. The value of y can be 250, 500, 1000 or 2000.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         312
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_MASK_GYRO_FULLSCALE , ICM20648_OK , ICM20648_REG_GYRO_CONFIG_1 , ICM20648_registerRead() , and ICM20648_registerWrite() .
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_gyroCalibrate() , and IMU_config() .
| uint32_t ICM20648_gyroResolutionGet | ( | float * | 
            gyroRes
            | ) | 
Gets the actual resolution of the gyroscope.
- Parameters
- 
         [out] gyroResThe actual resolution in (deg/sec)/bit units 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         245
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_GYRO_FULLSCALE_1000DPS , ICM20648_GYRO_FULLSCALE_2000DPS , ICM20648_GYRO_FULLSCALE_250DPS , ICM20648_GYRO_FULLSCALE_500DPS , ICM20648_MASK_GYRO_FULLSCALE , ICM20648_OK , ICM20648_REG_GYRO_CONFIG_1 , and ICM20648_registerRead() .
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_gyroCalibrate() , and ICM20648_gyroDataRead() .
| float ICM20648_gyroSampleRateSet | ( | float | 
            sampleRate
            | ) | 
Sets the sample rate of the accelerometer.
- Parameters
- 
         [in] sampleRateThe desired sample rate in Hz 
- Returns
- The actual sample rate. May be different from the desired value because of the finite and discrete number of divider settings
        Definition at line
        
         356
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_REG_GYRO_SMPLRT_DIV , and ICM20648_registerWrite() .
Referenced by ICM20648_sampleRateSet() , and IMU_config() .
| uint32_t ICM20648_init | ( | void | 
            | ) | 
Initializes the ICM20648 sensor. Enables the power supply and SPI lines, sets up the host SPI controller, configures the chip control interface, clock generator and interrupt line.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         52
        
        of file
        
         icm20648.c
        
        .
       
References BOARD_imuEnable() , ICM20648_BIT_CLK_PLL , ICM20648_BIT_I2C_IF_DIS , ICM20648_BIT_INT_ACTL , ICM20648_BIT_INT_OPEN , ICM20648_DEVICE_ID , ICM20648_ERROR_INVALID_DEVICE_ID , ICM20648_OK , ICM20648_REG_INT_PIN_CFG , ICM20648_REG_PWR_MGMT_1 , ICM20648_REG_USER_CTRL , ICM20648_REG_WHO_AM_I , ICM20648_registerRead() , ICM20648_registerWrite() , ICM20648_reset() , ICM20648_spiInit() , ICM20948_DEVICE_ID , and UTIL_delay() .
Referenced by IMU_init() .
| uint32_t ICM20648_interruptEnable | ( | bool | 
            dataReadyEnable,
            | 
| bool | 
            womEnable
            | ||
| ) | 
Enables or disables the interrupts in the ICM20648 chip.
- Parameters
- 
         [in] dataReadyEnableIf true enables the Raw Data Ready interrupt, otherwise disables. [in] womEnableIf true enables the Wake-up On Motion interrupt, otherwise disables. 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         648
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_BIT_RAW_DATA_0_RDY_EN , ICM20648_BIT_WOM_INT_EN , ICM20648_OK , ICM20648_REG_INT_ENABLE , ICM20648_REG_INT_ENABLE_1 , and ICM20648_registerWrite() .
Referenced by ICM20648_wakeOnMotionITEnable() , IMU_config() , and IMU_gyroCalibrate() .
| uint32_t ICM20648_interruptStatusRead | ( | uint32_t * | 
            intStatus
            | ) | 
Reads the interrupt status registers of the ICM20648 chip.
- Parameters
- 
         [out] intStatusThe content the four interrupt registers. LSByte is INT_STATUS, MSByte is INT_STATUS_3 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         686
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_OK , ICM20648_REG_INT_STATUS , and ICM20648_registerRead() .
Referenced by IMU_config() .
| bool ICM20648_isDataReady | ( | void | 
            | ) | 
Checks if new data is available for read.
- Returns
- Returns true if the Raw Data Ready interrupt bit set, false otherwise
        Definition at line
        
         706
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_BIT_RAW_DATA_0_RDY_INT , ICM20648_REG_INT_STATUS_1 , and ICM20648_registerRead() .
Referenced by IMU_isDataReady() .
| uint32_t ICM20648_lowPowerModeEnter | ( | bool | 
            enAccel,
            | 
| bool | 
            enGyro,
            | ||
| bool | 
            enTemp
            | ||
| ) | 
Enables or disables the sensors in low power mode in the ICM20648 chip.
- Parameters
- 
         [in] enAccelIf true enables the acceleration sensor in low power mode [in] enGyroIf true enables the gyroscope sensor in low power mode [in] enTempIf true enables the temperature sensor in low power mode 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         599
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_BIT_LP_EN , ICM20648_cycleModeEnable() , ICM20648_OK , ICM20648_REG_PWR_MGMT_1 , ICM20648_registerRead() , ICM20648_registerWrite() , ICM20648_sensorEnable() , ICM20648_sleepModeEnable() , and UTIL_delay() .
Referenced by ICM20648_wakeOnMotionITEnable() , and IMU_config() .
| void ICM20648_registerRead | ( | uint16_t | 
            addr,
            | 
| int | 
            numBytes,
            | ||
| uint8_t * | 
            data
            | ||
| ) | 
Reads register from the ICM20648 device.
- Parameters
- 
         [in] addrThe register address to read from in the sensor Bit[8:7] - bank address Bit[6:0] - register address [in] numBytesThe number of bytes to read [out] dataThe data read from the register 
- Returns
- None
        Definition at line
        
         1244
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_bankSelect() , USART_Rx() , and USART_Tx() .
Referenced by ICM20648_accelBandwidthSet() , ICM20648_accelDataRead() , ICM20648_accelFullscaleSet() , ICM20648_accelGyroCalibrate() , ICM20648_accelResolutionGet() , ICM20648_getDeviceID() , ICM20648_gyroBandwidthSet() , ICM20648_gyroCalibrate() , ICM20648_gyroDataRead() , ICM20648_gyroFullscaleSet() , ICM20648_gyroResolutionGet() , ICM20648_init() , ICM20648_interruptStatusRead() , ICM20648_isDataReady() , ICM20648_lowPowerModeEnter() , ICM20648_sensorEnable() , ICM20648_sleepModeEnable() , and ICM20648_temperatureRead() .
| void ICM20648_registerWrite | ( | uint16_t | 
            addr,
            | 
| uint8_t | 
            data
            | ||
| ) | 
Writes a register in the ICM20648 device.
- Parameters
- 
         [in] addrThe register address to write Bit[8:7] - bank address Bit[6:0] - register address [in] dataThe data to write to the register 
- Returns
- None
        Definition at line
        
         1287
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_bankSelect() , USART_Rx() , and USART_Tx() .
Referenced by ICM20648_accelBandwidthSet() , ICM20648_accelFullscaleSet() , ICM20648_accelGyroCalibrate() , ICM20648_accelSampleRateSet() , ICM20648_cycleModeEnable() , ICM20648_gyroBandwidthSet() , ICM20648_gyroCalibrate() , ICM20648_gyroFullscaleSet() , ICM20648_gyroSampleRateSet() , ICM20648_init() , ICM20648_interruptEnable() , ICM20648_lowPowerModeEnter() , ICM20648_reset() , ICM20648_sensorEnable() , ICM20648_sleepModeEnable() , and ICM20648_wakeOnMotionITEnable() .
| uint32_t ICM20648_reset | ( | void | 
            | ) | 
Performs soft reset on the ICM20648 chip.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         114
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_BIT_H_RESET , ICM20648_OK , ICM20648_REG_PWR_MGMT_1 , ICM20648_registerWrite() , and UTIL_delay() .
Referenced by ICM20648_init() .
| uint32_t ICM20648_sampleRateSet | ( | float | 
            sampleRate
            | ) | 
Sets the sample rate both of the accelerometer and the gyroscope.
- Parameters
- 
         [in] sampleRateThe desired sample rate in Hz. Since the resolution of the sample rate divider is different in the accel and gyro stages it is possible that the two sensor will have different sample rate set. 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         337
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_accelSampleRateSet() , ICM20648_gyroSampleRateSet() , and ICM20648_OK .
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_gyroCalibrate() , and ICM20648_wakeOnMotionITEnable() .
| uint32_t ICM20648_sensorEnable | ( | bool | 
            accel,
            | 
| bool | 
            gyro,
            | ||
| bool | 
            temp
            | ||
| ) | 
Enables or disables the sensors in the ICM20648 chip.
- Parameters
- 
         [in] accelIf true enables the acceleration sensor [in] gyroIf true enables the gyroscope sensor [in] tempIf true enables the temperature sensor 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         547
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_BIT_PWR_ACCEL_STBY , ICM20648_BIT_PWR_GYRO_STBY , ICM20648_BIT_TEMP_DIS , ICM20648_OK , ICM20648_REG_PWR_MGMT_1 , ICM20648_REG_PWR_MGMT_2 , ICM20648_registerRead() , and ICM20648_registerWrite() .
Referenced by ICM20648_accelGyroCalibrate() , ICM20648_gyroCalibrate() , ICM20648_lowPowerModeEnter() , ICM20648_wakeOnMotionITEnable() , and IMU_config() .
| uint32_t ICM20648_sleepModeEnable | ( | bool | 
            enable
            | ) | 
Enables or disables the sleep mode of the device.
- Parameters
- 
         [in] enableIf true, sleep mode is enabled. Set to false to disable sleep mode. 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         486
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_BIT_SLEEP , ICM20648_OK , ICM20648_REG_PWR_MGMT_1 , ICM20648_registerRead() , and ICM20648_registerWrite() .
Referenced by ICM20648_lowPowerModeEnter() , and ICM20648_wakeOnMotionITEnable() .
| uint32_t ICM20648_spiInit | ( | void | 
            | ) | 
Initializes the SPI bus in order to communicate with the ICM20648.
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         1195
        
        of file
        
         icm20648.c
        
        .
       
References _USART_ROUTELOC0_CLKLOC_MASK , _USART_ROUTELOC0_CLKLOC_SHIFT , _USART_ROUTELOC0_RXLOC_MASK , _USART_ROUTELOC0_RXLOC_SHIFT , _USART_ROUTELOC0_TXLOC_MASK , _USART_ROUTELOC0_TXLOC_SHIFT , CMU_ClockEnable() , cmuClock_GPIO , cmuClock_HFPER , GPIO_PinModeSet() , gpioModeInput , gpioModePushPull , ICM20648_OK , USART_TypeDef::ROUTELOC0 , USART_TypeDef::ROUTEPEN , USART_InitSync() , USART_Reset() , USART_ROUTEPEN_CLKPEN , USART_ROUTEPEN_RXPEN , and USART_ROUTEPEN_TXPEN .
Referenced by ICM20648_init() .
| uint32_t ICM20648_temperatureRead | ( | float * | 
            temperature
            | ) | 
Reads the temperature sensor raw value and converts to Celsius.
- Parameters
- 
         [out] temperatureThe mesured temperature in Celsius 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         1154
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_OK , ICM20648_REG_TEMPERATURE_H , and ICM20648_registerRead() .
| uint32_t ICM20648_wakeOnMotionITEnable | ( | bool | 
            enable,
            | 
| uint8_t | 
            womThreshold,
            | ||
| float | 
            sampleRate
            | ||
| ) | 
Sets up and enables the Wake-up On Motion feature.
- Parameters
- 
         [in] enableIf true enables the WOM feature, disables otherwise [in] womThresholdThreshold value for the Wake on Motion Interrupt for ACCEL x/y/z axes. LSB = 4mg. Range is 0mg to 1020mg [in] sampleRateThe desired sample rate of the accel sensor in Hz 
- Returns
- Returns zero on OK, non-zero otherwise
        Definition at line
        
         738
        
        of file
        
         icm20648.c
        
        .
       
References ICM20648_ACCEL_BW_1210HZ , ICM20648_ACCEL_FULLSCALE_2G , ICM20648_accelBandwidthSet() , ICM20648_accelFullscaleSet() , ICM20648_BIT_ACCEL_INTEL_EN , ICM20648_BIT_ACCEL_INTEL_MODE , ICM20648_cycleModeEnable() , ICM20648_interruptEnable() , ICM20648_lowPowerModeEnter() , ICM20648_OK , ICM20648_REG_ACCEL_INTEL_CTRL , ICM20648_REG_ACCEL_WOM_THR , ICM20648_registerWrite() , ICM20648_sampleRateSet() , ICM20648_sensorEnable() , ICM20648_sleepModeEnable() , and UTIL_delay() .