File ns_mpu6050_i2c_driver.c
FileList > neuralSPOT > neuralspot > ns-i2c > src > ns_mpu6050_i2c_driver.c
Go to the source code of this file
#include "ns_mpu6050_i2c_driver.h"
#include "am_bsp.h"
#include "am_mcu_apollo.h"
#include "am_util.h"
#include "ns_i2c_register_driver.h"
#include <limits.h>
#include <stdlib.h>
Public Functions
Type | Name |
---|---|
uint32_t | mpu6050_accel_fsr_value (mpu6050_accel_fs_t range) Acceleration scale in units of G. |
float | mpu6050_accel_resolution (mpu6050_accel_fs_t range) Acceleration scale LSB resolution. |
float | mpu6050_accel_to_gravity (int16_t val, mpu6050_accel_fs_t range) Convert acceleration value to G. |
uint32_t | mpu6050_calibrate (ns_i2c_config_t * cfg, uint32_t devAddr) Calibrate device offsets. Device must be still on a flat surface. |
uint32_t | mpu6050_calibration (ns_i2c_config_t * cfg, uint32_t devAddr) Calibrate device offsets. Device must be still on a flat surface. |
uint32_t | mpu6050_configure_fifo (ns_i2c_config_t * cfg, uint32_t devAddr, mpu6050_fifo_config_t * fifoConfig) Configure FIFO. |
uint32_t | mpu6050_configure_interrupt (ns_i2c_config_t * cfg, uint32_t devAddr, mpu6050_int_config_t * intConfig) Configure interrupts. |
uint32_t | mpu6050_device_reset (ns_i2c_config_t * cfg, uint32_t devAddr) Hard reset device. |
uint32_t | mpu6050_fifo_pop (ns_i2c_config_t * cfg, uint32_t devAddr, int16_t * value) Pop next value from FIFO. |
uint32_t | mpu6050_get_accel_offset (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t axis, uint16_t * offset) |
uint32_t | mpu6050_get_accel_values (ns_i2c_config_t * cfg, uint32_t devAddr, int16_t * x, int16_t * y, int16_t * z) Get current acceleration values. |
uint32_t | mpu6050_get_fifo_count (ns_i2c_config_t * cfg, uint32_t devAddr, uint16_t * count) Get FIFO count. |
uint32_t | mpu6050_get_gyro_offset (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t axis, uint16_t * offset) |
uint32_t | mpu6050_get_gyro_values (ns_i2c_config_t * cfg, uint32_t devAddr, int16_t * x, int16_t * y, int16_t * z) Get current gyro values. |
uint32_t | mpu6050_get_interrupt_status (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t * status) Get interrupt status register. |
uint32_t | mpu6050_get_temperature (ns_i2c_config_t * cfg, uint32_t devAddr, int16_t * t) Get current temperature value. |
uint32_t | mpu6050_gyro_fsr_value (const mpu6050_gyro_fs_t range) Gyroscope scale in units dps. |
float | mpu6050_gyro_resolution (const mpu6050_gyro_fs_t range) Gyroscope scale LSB resolution. |
float | mpu6050_gyro_to_deg_per_sec (int val, mpu6050_gyro_fs_t range) Convert gyroscope value to degrees/second. |
uint32_t | mpu6050_init (ns_i2c_config_t * cfg, mpu6050_config_t * c, uint32_t devAddr) |
uint32_t | mpu6050_mean_sensors (ns_i2c_config_t * cfg, uint32_t devAddr, int * meanAX, int * meanAY, int * meanAZ, int * meanGX, int * meanGY, int * meanGZ) Get average sensor values. |
uint32_t | mpu6050_read_sensors (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t * buffer) Reads MPU sensor values (3-axis accel, 1 temp, 3-axis gyro) |
uint32_t | mpu6050_reset_fifo (ns_i2c_config_t * cfg, uint32_t devAddr) Reset FIFO. |
uint32_t | mpu6050_reset_signal_conds (ns_i2c_config_t * cfg, uint32_t devAddr) Reset signal conditions. |
uint32_t | mpu6050_reset_signal_paths (ns_i2c_config_t * cfg, uint32_t devAddr) Reset signal paths. |
uint32_t | mpu6050_set_accel_full_scale (ns_i2c_config_t * cfg, uint32_t devAddr, mpu6050_accel_fs_t fsr) Set accel full scale range. |
uint32_t | mpu6050_set_accel_offset (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t axis, int offset) Set acceleration offset for axis. |
uint32_t | mpu6050_set_clock_source (ns_i2c_config_t * cfg, uint32_t devAddr, mpu6050_clock_src_t sel) Set clock source. |
uint32_t | mpu6050_set_fifo_enable (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t enable) Enable FIFO. |
uint32_t | mpu6050_set_gyro_full_scale (ns_i2c_config_t * cfg, uint32_t devAddr, mpu6050_gyro_fs_t fsr) Set gyro full scale range. |
uint32_t | mpu6050_set_gyro_offset (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t axis, int offset) Set gyroscope offset for axis. |
uint32_t | mpu6050_set_interrupt_enable (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t overflowEnable, uint8_t dataReadyEnable) Enable/disable interrupts. |
uint32_t | mpu6050_set_lowpass_filter (ns_i2c_config_t * cfg, uint32_t devAddr, mpu6050_dlpf_cfg_t value) Set digital lowpass filter. |
uint32_t | mpu6050_set_lowpower_accel_mode (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t wakeFreq) Put device into low-power acceleration-only mode. |
uint32_t | mpu6050_set_sample_rate (ns_i2c_config_t * cfg, uint32_t devAddr, uint16_t rate) Set target sample rate. |
uint32_t | mpu6050_set_sample_rate_divider (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t divider) Set sample rate divider. |
uint32_t | mpu6050_set_sleep (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t sleep) Enable/disable sleep mode. |
uint32_t | mpu6050_set_temperature_disable (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t disable) Disable temperature readings. |
float | mpu6050_temperature_to_celsius (int16_t val) Convert temperature value to Celsius. |
uint32_t | mpu6050_test_connection (ns_i2c_config_t * cfg, uint32_t devAddr) Verify device by reading WHO_AM_I register. |
Public Static Functions
Type | Name |
---|---|
int8_t | get_high_bits (int16_t regReading) |
int8_t | get_low_bits (int16_t regReading) |
uint32_t | read_word_register (ns_i2c_config_t * cfg, uint32_t devAddr, uint8_t reg, uint16_t * value) |
Macros
Public Functions Documentation
function mpu6050_accel_fsr_value
Acceleration scale in units of G.
uint32_t mpu6050_accel_fsr_value (
mpu6050_accel_fs_t range
)
Parameters:
range
Full scale range selection
Returns:
uint32_t Scale in G
function mpu6050_accel_resolution
Acceleration scale LSB resolution.
float mpu6050_accel_resolution (
mpu6050_accel_fs_t range
)
Parameters:
range
Full scale range selection
Returns:
float Resolution (G)
function mpu6050_accel_to_gravity
Convert acceleration value to G.
float mpu6050_accel_to_gravity (
int16_t val,
mpu6050_accel_fs_t range
)
Parameters:
val
Accel register valuerange
Full-scale range used
Returns:
Acceleration (G)
function mpu6050_calibrate
Calibrate device offsets. Device must be still on a flat surface.
uint32_t mpu6050_calibrate (
ns_i2c_config_t * cfg,
uint32_t devAddr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C address
Returns:
uint32_t status
Calibrate device offsets. Device must be still on a flat surface.
Parameters:
cfg
I2C configurationdevAddr
Device I2C address
Returns:
uint32_t status
function mpu6050_calibration
Calibrate device offsets. Device must be still on a flat surface.
uint32_t mpu6050_calibration (
ns_i2c_config_t * cfg,
uint32_t devAddr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C address
Returns:
uint32_t status
function mpu6050_configure_fifo
Configure FIFO.
uint32_t mpu6050_configure_fifo (
ns_i2c_config_t * cfg,
uint32_t devAddr,
mpu6050_fifo_config_t * fifoConfig
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressfifoConfig
FIFO configuration
Returns:
uint32_t status
function mpu6050_configure_interrupt
Configure interrupts.
uint32_t mpu6050_configure_interrupt (
ns_i2c_config_t * cfg,
uint32_t devAddr,
mpu6050_int_config_t * intConfig
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressintConfig
Interrupt configuration
Returns:
uint32_t status
function mpu6050_device_reset
Hard reset device.
uint32_t mpu6050_device_reset (
ns_i2c_config_t * cfg,
uint32_t devAddr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C address
Returns:
uint32_t status
function mpu6050_fifo_pop
Pop next value from FIFO.
uint32_t mpu6050_fifo_pop (
ns_i2c_config_t * cfg,
uint32_t devAddr,
int16_t * value
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressvalue
Pointer to FIFO value
Returns:
uint32_t status
function mpu6050_get_accel_offset
uint32_t mpu6050_get_accel_offset (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t axis,
uint16_t * offset
)
function mpu6050_get_accel_values
Get current acceleration values.
uint32_t mpu6050_get_accel_values (
ns_i2c_config_t * cfg,
uint32_t devAddr,
int16_t * x,
int16_t * y,
int16_t * z
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressx
Pointer to store x axisy
Pointer to store y axisz
Pointer to store z axis
Returns:
uint32_t status
function mpu6050_get_fifo_count
Get FIFO count.
uint32_t mpu6050_get_fifo_count (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint16_t * count
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addresscount
Pointer to store count
Returns:
uint32_t status
function mpu6050_get_gyro_offset
uint32_t mpu6050_get_gyro_offset (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t axis,
uint16_t * offset
)
function mpu6050_get_gyro_values
Get current gyro values.
uint32_t mpu6050_get_gyro_values (
ns_i2c_config_t * cfg,
uint32_t devAddr,
int16_t * x,
int16_t * y,
int16_t * z
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressx
Pointer to store x axisy
Pointer to store y axisz
Pointer to store z axis
Returns:
uint32_t status
function mpu6050_get_interrupt_status
Get interrupt status register.
uint32_t mpu6050_get_interrupt_status (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t * status
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressstatus
Pointer to store status register
Returns:
uint32_t
function mpu6050_get_temperature
Get current temperature value.
uint32_t mpu6050_get_temperature (
ns_i2c_config_t * cfg,
uint32_t devAddr,
int16_t * t
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addresst
Pointer to store Temperature
Returns:
uint32_t status
function mpu6050_gyro_fsr_value
Gyroscope scale in units dps.
uint32_t mpu6050_gyro_fsr_value (
const mpu6050_gyro_fs_t range
)
Parameters:
range
Full scale range selection
Returns:
uint32_t Scale (°/s)
function mpu6050_gyro_resolution
Gyroscope scale LSB resolution.
float mpu6050_gyro_resolution (
const mpu6050_gyro_fs_t range
)
Parameters:
range
Full scale range selection
Returns:
float Resolution (°/s)
function mpu6050_gyro_to_deg_per_sec
Convert gyroscope value to degrees/second.
float mpu6050_gyro_to_deg_per_sec (
int val,
mpu6050_gyro_fs_t range
)
Parameters:
val
Gyroscope register valuerange
Full-scale range used
Returns:
float Gyroscope (°/s)
function mpu6050_init
uint32_t mpu6050_init (
ns_i2c_config_t * cfg,
mpu6050_config_t * c,
uint32_t devAddr
)
function mpu6050_mean_sensors
Get average sensor values.
uint32_t mpu6050_mean_sensors (
ns_i2c_config_t * cfg,
uint32_t devAddr,
int * meanAX,
int * meanAY,
int * meanAZ,
int * meanGX,
int * meanGY,
int * meanGZ
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressmeanAX
Pointer to store mean X accelmeanAY
Pointer to store mean Y accelmeanAZ
Pointer to store mean Z accelmeanGX
Pointer to store mean X gyromeanGY
Pointer to store mean Y gyromeanGZ
Pointer to store mean Z gyro
Returns:
uint32_t status
function mpu6050_read_sensors
Reads MPU sensor values (3-axis accel, 1 temp, 3-axis gyro)
uint32_t mpu6050_read_sensors (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t * buffer
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressbuffer
14-byte buffer to store values
Returns:
uint32_t status
function mpu6050_reset_fifo
Reset FIFO.
uint32_t mpu6050_reset_fifo (
ns_i2c_config_t * cfg,
uint32_t devAddr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C address
Returns:
uint32_t
function mpu6050_reset_signal_conds
Reset signal conditions.
uint32_t mpu6050_reset_signal_conds (
ns_i2c_config_t * cfg,
uint32_t devAddr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C address
Returns:
uint32_t status
function mpu6050_reset_signal_paths
Reset signal paths.
uint32_t mpu6050_reset_signal_paths (
ns_i2c_config_t * cfg,
uint32_t devAddr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C address
Returns:
uint32_t status
function mpu6050_set_accel_full_scale
Set accel full scale range.
uint32_t mpu6050_set_accel_full_scale (
ns_i2c_config_t * cfg,
uint32_t devAddr,
mpu6050_accel_fs_t fsr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressfsr
Full scale range selection
Returns:
uint32_t
function mpu6050_set_accel_offset
Set acceleration offset for axis.
uint32_t mpu6050_set_accel_offset (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t axis,
int offset
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressaxis
x=0, y=1, z=2offset
Offset value
Returns:
uint32_t status
function mpu6050_set_clock_source
Set clock source.
uint32_t mpu6050_set_clock_source (
ns_i2c_config_t * cfg,
uint32_t devAddr,
mpu6050_clock_src_t sel
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addresssel
Clock selection
Returns:
uint32_t status
function mpu6050_set_fifo_enable
Enable FIFO.
uint32_t mpu6050_set_fifo_enable (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t enable
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressenable
Enable FIFO flag
Returns:
uint32_t status
function mpu6050_set_gyro_full_scale
Set gyro full scale range.
uint32_t mpu6050_set_gyro_full_scale (
ns_i2c_config_t * cfg,
uint32_t devAddr,
mpu6050_gyro_fs_t fsr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressfsr
Full scale range selection
Returns:
uint32_t status
function mpu6050_set_gyro_offset
Set gyroscope offset for axis.
uint32_t mpu6050_set_gyro_offset (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t axis,
int offset
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressaxis
x=0, y=1, z=2offset
Offset value
Returns:
uint32_t status
function mpu6050_set_interrupt_enable
Enable/disable interrupts.
uint32_t mpu6050_set_interrupt_enable (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t overflowEnable,
uint8_t dataReadyEnable
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressoverflowEnable
Overflow triggers interruptdataReadyEnable
Data ready triggers interrupt
Returns:
uint32_t status
function mpu6050_set_lowpass_filter
Set digital lowpass filter.
uint32_t mpu6050_set_lowpass_filter (
ns_i2c_config_t * cfg,
uint32_t devAddr,
mpu6050_dlpf_cfg_t value
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressvalue
Filter selection
Returns:
uint32_t status
function mpu6050_set_lowpower_accel_mode
Put device into low-power acceleration-only mode.
uint32_t mpu6050_set_lowpower_accel_mode (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t wakeFreq
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addresswakeFreq
Wake-up frequency 0=1.25Hz, 1=5Hz 2=20Hz 3=40Hz
Returns:
uint32_t status
function mpu6050_set_sample_rate
Set target sample rate.
uint32_t mpu6050_set_sample_rate (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint16_t rate
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressrate
Target rate in Hz
Returns:
uint32_t status
function mpu6050_set_sample_rate_divider
Set sample rate divider.
uint32_t mpu6050_set_sample_rate_divider (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t divider
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressdivider
Sample rate divider
Returns:
uint32_t status
function mpu6050_set_sleep
Enable/disable sleep mode.
uint32_t mpu6050_set_sleep (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t sleep
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addresssleep
Sleep flag
Returns:
uint32_t status
function mpu6050_set_temperature_disable
Disable temperature readings.
uint32_t mpu6050_set_temperature_disable (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t disable
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C addressdisable
Disable temperature flag
Returns:
uint32_t status
function mpu6050_temperature_to_celsius
Convert temperature value to Celsius.
float mpu6050_temperature_to_celsius (
int16_t val
)
Parameters:
val
Temperature register
Returns:
float Temperature (°C)
function mpu6050_test_connection
Verify device by reading WHO_AM_I register.
uint32_t mpu6050_test_connection (
ns_i2c_config_t * cfg,
uint32_t devAddr
)
Parameters:
cfg
I2C configurationdevAddr
Device I2C address
Returns:
uint32_t status
Public Static Functions Documentation
function get_high_bits
static int8_t get_high_bits (
int16_t regReading
)
function get_low_bits
static int8_t get_low_bits (
int16_t regReading
)
function read_word_register
static uint32_t read_word_register (
ns_i2c_config_t * cfg,
uint32_t devAddr,
uint8_t reg,
uint16_t * value
)
Macro Definition Documentation
define ACCEL_CONFIG
#define ACCEL_CONFIG 0x1C
define ACCEL_XOUT_H
#define ACCEL_XOUT_H 0x3B
define ACCEL_XOUT_L
#define ACCEL_XOUT_L 0x3C
define ACCEL_YOUT_H
#define ACCEL_YOUT_H 0x3D
define ACCEL_YOUT_L
#define ACCEL_YOUT_L 0x3E
define ACCEL_ZOUT_H
#define ACCEL_ZOUT_H 0x3F
define ACCEL_ZOUT_L
#define ACCEL_ZOUT_L 0x40
define ACONFIG_FS_SEL_BIT
#define ACONFIG_FS_SEL_BIT 4
define ACONFIG_FS_SEL_LENGTH
#define ACONFIG_FS_SEL_LENGTH 2
define ACONFIG_HPF_BIT
#define ACONFIG_HPF_BIT 2
define ACONFIG_HPF_LENGTH
#define ACONFIG_HPF_LENGTH 3
define ACONFIG_XA_ST_BIT
#define ACONFIG_XA_ST_BIT 7
define ACONFIG_YA_ST_BIT
#define ACONFIG_YA_ST_BIT 6
define ACONFIG_ZA_ST_BIT
#define ACONFIG_ZA_ST_BIT 5
define BANKSEL_CFG_USER_BANK_BIT
#define BANKSEL_CFG_USER_BANK_BIT 5
define BANKSEL_MEM_SEL_BIT
#define BANKSEL_MEM_SEL_BIT 4
define BANKSEL_MEM_SEL_LENGTH
#define BANKSEL_MEM_SEL_LENGTH 5
define BANKSEL_PRFTCH_EN_BIT
#define BANKSEL_PRFTCH_EN_BIT 6
define BANK_SEL
#define BANK_SEL 0x6D
define CONFIG
#define CONFIG 0x1A
define CONFIG_DLPF_CFG_BIT
#define CONFIG_DLPF_CFG_BIT 2
define CONFIG_DLPF_CFG_LENGTH
#define CONFIG_DLPF_CFG_LENGTH 3
define CONFIG_EXT_SYNC_SET_BIT
#define CONFIG_EXT_SYNC_SET_BIT 5
define CONFIG_EXT_SYNC_SET_LENGTH
#define CONFIG_EXT_SYNC_SET_LENGTH 3
define CONFIG_FIFO_MODE_BIT
#define CONFIG_FIFO_MODE_BIT 6
define DMP_INT_STATUS
#define DMP_INT_STATUS 0x39
define DMP_INT_STATUS_0
#define DMP_INT_STATUS_0 0
define DMP_INT_STATUS_1
#define DMP_INT_STATUS_1 1
define DMP_INT_STATUS_2
#define DMP_INT_STATUS_2 2
define DMP_INT_STATUS_3
#define DMP_INT_STATUS_3 3
define DMP_INT_STATUS_4
#define DMP_INT_STATUS_4 4
define DMP_INT_STATUS_5
#define DMP_INT_STATUS_5 5
define EXT_SENS_DATA_00
#define EXT_SENS_DATA_00 0x49
define EXT_SENS_DATA_01
#define EXT_SENS_DATA_01 0x4A
define EXT_SENS_DATA_02
#define EXT_SENS_DATA_02 0x4B
define EXT_SENS_DATA_03
#define EXT_SENS_DATA_03 0x4C
define EXT_SENS_DATA_04
#define EXT_SENS_DATA_04 0x4D
define EXT_SENS_DATA_05
#define EXT_SENS_DATA_05 0x4E
define EXT_SENS_DATA_06
#define EXT_SENS_DATA_06 0x4F
define EXT_SENS_DATA_07
#define EXT_SENS_DATA_07 0x50
define EXT_SENS_DATA_08
#define EXT_SENS_DATA_08 0x51
define EXT_SENS_DATA_09
#define EXT_SENS_DATA_09 0x52
define EXT_SENS_DATA_10
#define EXT_SENS_DATA_10 0x53
define EXT_SENS_DATA_11
#define EXT_SENS_DATA_11 0x54
define EXT_SENS_DATA_12
#define EXT_SENS_DATA_12 0x55
define EXT_SENS_DATA_13
#define EXT_SENS_DATA_13 0x56
define EXT_SENS_DATA_14
#define EXT_SENS_DATA_14 0x57
define EXT_SENS_DATA_15
#define EXT_SENS_DATA_15 0x58
define EXT_SENS_DATA_17
#define EXT_SENS_DATA_17 0x5A
define EXT_SENS_DATA_18
#define EXT_SENS_DATA_18 0x5B
define EXT_SENS_DATA_19
#define EXT_SENS_DATA_19 0x5C
define EXT_SENS_DATA_20
#define EXT_SENS_DATA_20 0x5D
define EXT_SENS_DATA_21
#define EXT_SENS_DATA_21 0x5E
define EXT_SENS_DATA_22
#define EXT_SENS_DATA_22 0x5F
define EXT_SENS_DATA_23
#define EXT_SENS_DATA_23 0x60
define FF_DUR
#define FF_DUR 0x1E
define FF_THR
#define FF_THR 0x1D
define FIFO_ACCEL_EN_BIT
#define FIFO_ACCEL_EN_BIT 3
define FIFO_COUNT_H
#define FIFO_COUNT_H 0x72
define FIFO_COUNT_L
#define FIFO_COUNT_L 0x73
define FIFO_EN
#define FIFO_EN 0x23
define FIFO_R_W
#define FIFO_R_W 0x74
define FIFO_SLV_0_EN_BIT
#define FIFO_SLV_0_EN_BIT 0
define FIFO_SLV_1_EN_BIT
#define FIFO_SLV_1_EN_BIT 1
define FIFO_SLV_2_EN_BIT
#define FIFO_SLV_2_EN_BIT 2
define FIFO_TEMP_EN_BIT
#define FIFO_TEMP_EN_BIT 7
define FIFO_XGYRO_EN_BIT
#define FIFO_XGYRO_EN_BIT 6
define FIFO_YGYRO_EN_BIT
#define FIFO_YGYRO_EN_BIT 5
define FIFO_ZGYRO_EN_BIT
#define FIFO_ZGYRO_EN_BIT 4
define GCONFIG_FCHOICE_B
#define GCONFIG_FCHOICE_B 1
define GCONFIG_FCHOICE_B_LENGTH
#define GCONFIG_FCHOICE_B_LENGTH 2
define GCONFIG_FS_SEL_BIT
#define GCONFIG_FS_SEL_BIT 4
define GCONFIG_FS_SEL_LENGTH
#define GCONFIG_FS_SEL_LENGTH 2
define GCONFIG_XG_ST_BIT
#define GCONFIG_XG_ST_BIT 7
define GCONFIG_YG_ST_BIT
#define GCONFIG_YG_ST_BIT 6
define GCONFIG_ZG_ST_BIT
#define GCONFIG_ZG_ST_BIT 5
define GYRO_CONFIG
#define GYRO_CONFIG 0x1B
define GYRO_XOUT_H
#define GYRO_XOUT_H 0x43
define GYRO_XOUT_L
#define GYRO_XOUT_L 0x44
define GYRO_YOUT_H
#define GYRO_YOUT_H 0x45
define GYRO_YOUT_L
#define GYRO_YOUT_L 0x46
define GYRO_ZOUT_H
#define GYRO_ZOUT_H 0x47
define GYRO_ZOUT_L
#define GYRO_ZOUT_L 0x48
define I2CMST_CTRL_CLOCK_BIT
#define I2CMST_CTRL_CLOCK_BIT 3
define I2CMST_CTRL_CLOCK_LENGTH
#define I2CMST_CTRL_CLOCK_LENGTH 4
define I2CMST_CTRL_MULT_EN_BIT
#define I2CMST_CTRL_MULT_EN_BIT 7
define I2CMST_CTRL_P_NSR_BIT
#define I2CMST_CTRL_P_NSR_BIT 4
define I2CMST_CTRL_SLV_3_FIFO_EN_BIT
#define I2CMST_CTRL_SLV_3_FIFO_EN_BIT 5
define I2CMST_CTRL_WAIT_FOR_ES_BIT
#define I2CMST_CTRL_WAIT_FOR_ES_BIT 6
define I2CMST_DLY_ES_SHADOW_BIT
#define I2CMST_DLY_ES_SHADOW_BIT 7
define I2CMST_DLY_SLV0_EN_BIT
#define I2CMST_DLY_SLV0_EN_BIT 0
define I2CMST_DLY_SLV1_EN_BIT
#define I2CMST_DLY_SLV1_EN_BIT 1
define I2CMST_DLY_SLV2_EN_BIT
#define I2CMST_DLY_SLV2_EN_BIT 2
define I2CMST_DLY_SLV3_EN_BIT
#define I2CMST_DLY_SLV3_EN_BIT 3
define I2CMST_DLY_SLV4_EN_BIT
#define I2CMST_DLY_SLV4_EN_BIT 4
define I2CMST_STAT_LOST_ARB_BIT
#define I2CMST_STAT_LOST_ARB_BIT 5
define I2CMST_STAT_PASS_THROUGH_BIT
#define I2CMST_STAT_PASS_THROUGH_BIT 7
define I2CMST_STAT_SLV0_NACK_BIT
#define I2CMST_STAT_SLV0_NACK_BIT 0
define I2CMST_STAT_SLV1_NACK_BIT
#define I2CMST_STAT_SLV1_NACK_BIT 1
define I2CMST_STAT_SLV2_NACK_BIT
#define I2CMST_STAT_SLV2_NACK_BIT 2
define I2CMST_STAT_SLV3_NACK_BIT
#define I2CMST_STAT_SLV3_NACK_BIT 3
define I2CMST_STAT_SLV4_DONE_BIT
#define I2CMST_STAT_SLV4_DONE_BIT 6
define I2CMST_STAT_SLV4_NACK_BIT
#define I2CMST_STAT_SLV4_NACK_BIT 4
define I2C_MST_CTRL
#define I2C_MST_CTRL 0x24
define I2C_MST_DELAY_CRTL
#define I2C_MST_DELAY_CRTL 0x67
define I2C_MST_STATUS
#define I2C_MST_STATUS 0x36
define I2C_SLV0_ADDR
#define I2C_SLV0_ADDR 0x25
define I2C_SLV0_CTRL
#define I2C_SLV0_CTRL 0x27
define I2C_SLV0_DO
#define I2C_SLV0_DO 0x63
define I2C_SLV0_REG
#define I2C_SLV0_REG 0x26
define I2C_SLV1_ADDR
#define I2C_SLV1_ADDR 0x28
define I2C_SLV1_CTRL
#define I2C_SLV1_CTRL 0x2A
define I2C_SLV1_DO
#define I2C_SLV1_DO 0x64
define I2C_SLV1_REG
#define I2C_SLV1_REG 0x29
define I2C_SLV2_ADDR
#define I2C_SLV2_ADDR 0x2B
define I2C_SLV2_CTRL
#define I2C_SLV2_CTRL 0x2D
define I2C_SLV2_DO
#define I2C_SLV2_DO 0x65
define I2C_SLV2_REG
#define I2C_SLV2_REG 0x2C
define I2C_SLV3_ADDR
#define I2C_SLV3_ADDR 0x2E
define I2C_SLV3_CTRL
#define I2C_SLV3_CTRL 0x30
define I2C_SLV3_DO
#define I2C_SLV3_DO 0x66
define I2C_SLV3_REG
#define I2C_SLV3_REG 0x2F
define I2C_SLV4_ADDR
#define I2C_SLV4_ADDR 0x31
define I2C_SLV4_CTRL
#define I2C_SLV4_CTRL 0x34
define I2C_SLV4_DI
#define I2C_SLV4_DI 0x35
define I2C_SLV4_DO
#define I2C_SLV4_DO 0x33
define I2C_SLV4_DONE_INT_BIT
#define I2C_SLV4_DONE_INT_BIT 6
define I2C_SLV4_EN_BIT
#define I2C_SLV4_EN_BIT 7
define I2C_SLV4_MST_DELAY_BIT
#define I2C_SLV4_MST_DELAY_BIT 4
define I2C_SLV4_MST_DELAY_LENGTH
#define I2C_SLV4_MST_DELAY_LENGTH 5
define I2C_SLV4_REG
#define I2C_SLV4_REG 0x32
define I2C_SLV4_REG_DIS_BIT
#define I2C_SLV4_REG_DIS_BIT 5
define I2C_SLV_BYTE_SW_BIT
#define I2C_SLV_BYTE_SW_BIT 6
define I2C_SLV_EN_BIT
#define I2C_SLV_EN_BIT 7
define I2C_SLV_GRP_BIT
#define I2C_SLV_GRP_BIT 4
define I2C_SLV_ID_BIT
#define I2C_SLV_ID_BIT 6
define I2C_SLV_ID_LENGTH
#define I2C_SLV_ID_LENGTH 7
define I2C_SLV_LEN_BIT
#define I2C_SLV_LEN_BIT 3
define I2C_SLV_LEN_LENGTH
#define I2C_SLV_LEN_LENGTH 4
define I2C_SLV_REG_DIS_BIT
#define I2C_SLV_REG_DIS_BIT 5
define I2C_SLV_RNW_BIT
#define I2C_SLV_RNW_BIT 7
define INT_CFG_ANYRD_2CLEAR_BIT
#define INT_CFG_ANYRD_2CLEAR_BIT 4
define INT_CFG_CLOCKOUT_EN_BIT
#define INT_CFG_CLOCKOUT_EN_BIT 0
define INT_CFG_FSYNC_INT_MODE_EN_BIT
#define INT_CFG_FSYNC_INT_MODE_EN_BIT 2
define INT_CFG_FSYNC_LEVEL_BIT
#define INT_CFG_FSYNC_LEVEL_BIT 3
define INT_CFG_I2C_BYPASS_EN_BIT
#define INT_CFG_I2C_BYPASS_EN_BIT 1
define INT_CFG_LATCH_EN_BIT
#define INT_CFG_LATCH_EN_BIT 5
define INT_CFG_LEVEL_BIT
#define INT_CFG_LEVEL_BIT 7
define INT_CFG_OPEN_BIT
#define INT_CFG_OPEN_BIT 6
define INT_ENABLE
#define INT_ENABLE 0x38
define INT_ENABLE_DMP_RDY_BIT
#define INT_ENABLE_DMP_RDY_BIT 1
define INT_ENABLE_FIFO_OFLOW_BIT
#define INT_ENABLE_FIFO_OFLOW_BIT 4
define INT_ENABLE_FREEFALL_BIT
#define INT_ENABLE_FREEFALL_BIT 7
define INT_ENABLE_I2C_MST_FSYNC_BIT
#define INT_ENABLE_I2C_MST_FSYNC_BIT 3
define INT_ENABLE_MOTION_BIT
#define INT_ENABLE_MOTION_BIT 6
define INT_ENABLE_PLL_RDY_BIT
#define INT_ENABLE_PLL_RDY_BIT 2
define INT_ENABLE_RAW_DATA_RDY_BIT
#define INT_ENABLE_RAW_DATA_RDY_BIT 0
define INT_ENABLE_ZEROMOT_BIT
#define INT_ENABLE_ZEROMOT_BIT 5
define INT_PIN_CONFIG
#define INT_PIN_CONFIG 0x37
define INT_STATUS
#define INT_STATUS 0x3A
define INT_STATUS_DMP_RDY_BIT
#define INT_STATUS_DMP_RDY_BIT 1
define INT_STATUS_FIFO_OFLOW_BIT
#define INT_STATUS_FIFO_OFLOW_BIT 4
define INT_STATUS_FREEFALL_BIT
#define INT_STATUS_FREEFALL_BIT 7
define INT_STATUS_I2C_MST_BIT
#define INT_STATUS_I2C_MST_BIT 3
define INT_STATUS_MOTION_BIT
#define INT_STATUS_MOTION_BIT 6
define INT_STATUS_PLL_RDY_BIT
#define INT_STATUS_PLL_RDY_BIT 2
define INT_STATUS_RAW_DATA_RDY_BIT
#define INT_STATUS_RAW_DATA_RDY_BIT 0
define INT_STATUS_ZEROMOT_BIT
#define INT_STATUS_ZEROMOT_BIT 5
define MEM_R_W
#define MEM_R_W 0x6F
define MEM_START_ADDR
#define MEM_START_ADDR 0x6E
define MOTION_DUR
#define MOTION_DUR 0x20
define MOTION_THR
#define MOTION_THR 0x1F
define MPU6050_RA_XA_OFFS_H
#define MPU6050_RA_XA_OFFS_H 0x06
define MPU6050_RA_XA_OFFS_L
#define MPU6050_RA_XA_OFFS_L 0x07
define MPU6050_RA_YA_OFFS_H
#define MPU6050_RA_YA_OFFS_H 0x08
define MPU6050_RA_YA_OFFS_L
#define MPU6050_RA_YA_OFFS_L 0x09
define MPU6050_RA_ZA_OFFS_H
#define MPU6050_RA_ZA_OFFS_H 0x0A
define MPU6050_RA_ZA_OFFS_L
#define MPU6050_RA_ZA_OFFS_L 0x0B
define PRGM_START_H
#define PRGM_START_H 0x70
define PRGM_START_L
#define PRGM_START_L 0x71
define PWR1_CLKSEL_BIT
#define PWR1_CLKSEL_BIT 2
define PWR1_CLKSEL_LENGTH
#define PWR1_CLKSEL_LENGTH 3
define PWR1_CYCLE_BIT
#define PWR1_CYCLE_BIT 5
define PWR1_DEVICE_RESET_BIT
#define PWR1_DEVICE_RESET_BIT 7
define PWR1_GYRO_STANDBY_BIT
#define PWR1_GYRO_STANDBY_BIT 4
define PWR1_SLEEP_BIT
#define PWR1_SLEEP_BIT 6
define PWR1_TEMP_DIS_BIT
#define PWR1_TEMP_DIS_BIT 3
define PWR2_LP_WAKE_CTRL_BIT
#define PWR2_LP_WAKE_CTRL_BIT 7
define PWR2_LP_WAKE_CTRL_LENGTH
#define PWR2_LP_WAKE_CTRL_LENGTH 2
define PWR2_STBY_XA_BIT
#define PWR2_STBY_XA_BIT 5
define PWR2_STBY_XG_BIT
#define PWR2_STBY_XG_BIT 2
define PWR2_STBY_XYZA_BITS
#define PWR2_STBY_XYZA_BITS 1 << PWR2_STBY_XA_BIT | 1 << PWR2_STBY_YA_BIT | 1 << PWR2_STBY_ZA_BIT
define PWR2_STBY_XYZG_BITS
#define PWR2_STBY_XYZG_BITS 1 << PWR2_STBY_XG_BIT | 1 << PWR2_STBY_YG_BIT | 1 << PWR2_STBY_ZG_BIT
define PWR2_STBY_YA_BIT
#define PWR2_STBY_YA_BIT 4
define PWR2_STBY_YG_BIT
#define PWR2_STBY_YG_BIT 1
define PWR2_STBY_ZA_BIT
#define PWR2_STBY_ZA_BIT 3
define PWR2_STBY_ZG_BIT
#define PWR2_STBY_ZG_BIT 0
define PWR_MGMT1
#define PWR_MGMT1 0x6B
define PWR_MGMT2
#define PWR_MGMT2 0x6C
define SIGNAL_PATH_RESET
#define SIGNAL_PATH_RESET 0x68
define SMPLRT_DIV
#define SMPLRT_DIV 0x19
define SPATH_ACCEL_RST_BIT
#define SPATH_ACCEL_RST_BIT 1
define SPATH_GYRO_RST_BIT
#define SPATH_GYRO_RST_BIT 2
define SPATH_TEMP_RST_BIT
#define SPATH_TEMP_RST_BIT 0
define TEMP_OUT_H
#define TEMP_OUT_H 0x41
define TEMP_OUT_L
#define TEMP_OUT_L 0x42
define USERCTRL_DMP_EN_BIT
#define USERCTRL_DMP_EN_BIT 7
define USERCTRL_DMP_RESET_BIT
#define USERCTRL_DMP_RESET_BIT 3
define USERCTRL_FIFO_EN_BIT
#define USERCTRL_FIFO_EN_BIT 6
define USERCTRL_FIFO_RESET_BIT
#define USERCTRL_FIFO_RESET_BIT 2
define USERCTRL_I2C_IF_DIS_BIT
#define USERCTRL_I2C_IF_DIS_BIT 4
define USERCTRL_I2C_MST_EN_BIT
#define USERCTRL_I2C_MST_EN_BIT 5
define USERCTRL_I2C_MST_RESET_BIT
#define USERCTRL_I2C_MST_RESET_BIT 1
define USERCTRL_SIG_COND_RESET_BIT
#define USERCTRL_SIG_COND_RESET_BIT 0
define USER_CTRL
#define USER_CTRL 0x6A
define WHO_AM_I
#define WHO_AM_I 0x75
define XG_OFFSET_H
#define XG_OFFSET_H 0x13
define XG_OFFSET_L
#define XG_OFFSET_L 0x14
define YG_OFFSET_H
#define YG_OFFSET_H 0x15
define YG_OFFSET_L
#define YG_OFFSET_L 0x16
define ZG_OFFSET_H
#define ZG_OFFSET_H 0x17
define ZG_OFFSET_L
#define ZG_OFFSET_L 0x18
define ZRMOTION_DUR
#define ZRMOTION_DUR 0x22
define ZRMOTION_THR
#define ZRMOTION_THR 0x21
The documentation for this class was generated from the following file neuralSPOT/neuralspot/ns-i2c/src/ns_mpu6050_i2c_driver.c