Go to the source code of this file.
Macros | |
#define | GYRO_INT_PIN (Pin_13) |
#define | M_PI 3.14159 |
#define | MPU6050_BIT_DMP_RST 0x08 |
#define | MPU6050_BIT_FIFO_EN 0x40 |
#define | MPU6050_BIT_FIFO_RST 0x04 |
#define | MPU6050_INV_CLK_GYROZ 0x03 |
#define | MPU_ADDRESS (0x68) |
#define | MPU_RA_ACCEL_CONFIG 0x1C |
#define | MPU_RA_ACCEL_XOUT_H (0x3B) |
#define | MPU_RA_CONFIG 0x1A |
#define | MPU_RA_FIFO_COUNT_H 0x72 |
#define | MPU_RA_FIFO_EN 0x23 |
#define | MPU_RA_FIFO_R_W 0x74 |
#define | MPU_RA_GYRO_CONFIG 0x1B |
#define | MPU_RA_GYRO_XOUT_H (0x43) |
#define | MPU_RA_I2C_MST_CTRL 0x24 |
#define | MPU_RA_INT_ENABLE 0x38 |
#define | MPU_RA_INT_PIN_CFG 0x37 |
#define | MPU_RA_PRODUCT_ID (0x0C) |
#define | MPU_RA_PWR_MGMT_1 0x6B |
#define | MPU_RA_PWR_MGMT_2 0x6C |
#define | MPU_RA_SIGNAL_PATH_RST 0x68 |
#define | MPU_RA_SMPLRT_DIV 0x19 |
#define | MPU_RA_TEMP_OUT_A (0x41) |
#define | MPU_RA_USER_CTRL 0x6A |
#define | MPU_RA_WHO_AM_I (0x75) |
#define | MPU_RA_XA_OFFS_H (0x06) |
#define | MPUx0x0_WHO_AM_I_CONST (0x68) |
Enumerations | |
enum | accel_fsr_e { INV_FSR_2G = 0, INV_FSR_4G, INV_FSR_8G, INV_FSR_16G, NUM_ACCEL_FSR } |
enum | clock_sel_e { INV_CLK_INTERNAL = 0, INV_CLK_PLL, NUM_CLK } |
enum | gyro_fsr_e { INV_FSR_250DPS = 0, INV_FSR_500DPS, INV_FSR_1000DPS, INV_FSR_2000DPS, NUM_GYRO_FSR } |
enum | lpf_e { INV_FILTER_256HZ_NOLPF2 = 0, INV_FILTER_188HZ, INV_FILTER_98HZ, INV_FILTER_42HZ, INV_FILTER_20HZ, INV_FILTER_10HZ, INV_FILTER_5HZ, INV_FILTER_2100HZ_NOLPF, NUM_FILTER } |
Functions | |
void | EXTI15_10_IRQHandler (void) |
void | mpu6050_async_read_all (volatile int16_t *accData, volatile int16_t *tempData, volatile int16_t *gyroData, volatile uint64_t *timeData) |
void | mpu6050_exti_init (int boardVersion) |
void | mpu6050_init (bool enableInterrupt, uint16_t *acc1G, float *gyroScale, int boardVersion) |
bool | mpu6050_new_data () |
void | mpu6050_read_accel (int16_t *accData) |
void | mpu6050_read_all (int16_t *accData, int16_t *gyroData, int16_t *tempData, uint64_t *time_us) |
void | mpu6050_read_gyro (int16_t *gyroData) |
void | mpu6050_read_temperature (int16_t *tempData) |
void | mpu6050_request_async_update_all () |
static bool | mpuReadRegisterI2C (uint8_t reg, uint8_t *data, int length) |
static bool | mpuWriteRegisterI2C (uint8_t reg, uint8_t data) |
void | read_all_CB (uint8_t result) |
Variables | |
static volatile int16_t | accel [3] |
uint8_t | all_buffer [14] |
static volatile int16_t | gyro [3] |
static uint64_t | imu_time_us = 0 |
uint64_t | measurement_time = 0 |
static uint8_t | mpuLowPassFilter = INV_FILTER_20HZ |
static volatile bool | need_to_queue_new_i2c_job = false |
static bool | new_imu_data = false |
static volatile int16_t | temp |
#define GYRO_INT_PIN (Pin_13) |
Definition at line 42 of file drv_mpu6050.c.
#define M_PI 3.14159 |
Definition at line 28 of file drv_mpu6050.c.
#define MPU6050_BIT_DMP_RST 0x08 |
Definition at line 116 of file drv_mpu6050.c.
#define MPU6050_BIT_FIFO_EN 0x40 |
Definition at line 117 of file drv_mpu6050.c.
#define MPU6050_BIT_FIFO_RST 0x04 |
Definition at line 115 of file drv_mpu6050.c.
#define MPU6050_INV_CLK_GYROZ 0x03 |
Definition at line 114 of file drv_mpu6050.c.
#define MPU_ADDRESS (0x68) |
Definition at line 40 of file drv_mpu6050.c.
#define MPU_RA_ACCEL_CONFIG 0x1C |
Definition at line 101 of file drv_mpu6050.c.
#define MPU_RA_ACCEL_XOUT_H (0x3B) |
Definition at line 46 of file drv_mpu6050.c.
#define MPU_RA_CONFIG 0x1A |
Definition at line 99 of file drv_mpu6050.c.
#define MPU_RA_FIFO_COUNT_H 0x72 |
Definition at line 110 of file drv_mpu6050.c.
#define MPU_RA_FIFO_EN 0x23 |
Definition at line 102 of file drv_mpu6050.c.
#define MPU_RA_FIFO_R_W 0x74 |
Definition at line 111 of file drv_mpu6050.c.
#define MPU_RA_GYRO_CONFIG 0x1B |
Definition at line 100 of file drv_mpu6050.c.
#define MPU_RA_GYRO_XOUT_H (0x43) |
Definition at line 45 of file drv_mpu6050.c.
#define MPU_RA_I2C_MST_CTRL 0x24 |
Definition at line 103 of file drv_mpu6050.c.
#define MPU_RA_INT_ENABLE 0x38 |
Definition at line 105 of file drv_mpu6050.c.
#define MPU_RA_INT_PIN_CFG 0x37 |
Definition at line 104 of file drv_mpu6050.c.
#define MPU_RA_PRODUCT_ID (0x0C) |
Definition at line 50 of file drv_mpu6050.c.
#define MPU_RA_PWR_MGMT_1 0x6B |
Definition at line 108 of file drv_mpu6050.c.
#define MPU_RA_PWR_MGMT_2 0x6C |
Definition at line 109 of file drv_mpu6050.c.
#define MPU_RA_SIGNAL_PATH_RST 0x68 |
Definition at line 106 of file drv_mpu6050.c.
#define MPU_RA_SMPLRT_DIV 0x19 |
Definition at line 98 of file drv_mpu6050.c.
#define MPU_RA_TEMP_OUT_A (0x41) |
Definition at line 47 of file drv_mpu6050.c.
#define MPU_RA_USER_CTRL 0x6A |
Definition at line 107 of file drv_mpu6050.c.
#define MPU_RA_WHO_AM_I (0x75) |
Definition at line 44 of file drv_mpu6050.c.
#define MPU_RA_XA_OFFS_H (0x06) |
Definition at line 49 of file drv_mpu6050.c.
#define MPUx0x0_WHO_AM_I_CONST (0x68) |
Definition at line 53 of file drv_mpu6050.c.
enum accel_fsr_e |
Enumerator | |
---|---|
INV_FSR_2G | |
INV_FSR_4G | |
INV_FSR_8G | |
INV_FSR_16G | |
NUM_ACCEL_FSR |
Definition at line 81 of file drv_mpu6050.c.
enum clock_sel_e |
Enumerator | |
---|---|
INV_CLK_INTERNAL | |
INV_CLK_PLL | |
NUM_CLK |
Definition at line 75 of file drv_mpu6050.c.
enum gyro_fsr_e |
Enumerator | |
---|---|
INV_FSR_250DPS | |
INV_FSR_500DPS | |
INV_FSR_1000DPS | |
INV_FSR_2000DPS | |
NUM_GYRO_FSR |
Definition at line 67 of file drv_mpu6050.c.
enum lpf_e |
Enumerator | |
---|---|
INV_FILTER_256HZ_NOLPF2 | |
INV_FILTER_188HZ | |
INV_FILTER_98HZ | |
INV_FILTER_42HZ | |
INV_FILTER_20HZ | |
INV_FILTER_10HZ | |
INV_FILTER_5HZ | |
INV_FILTER_2100HZ_NOLPF | |
NUM_FILTER |
Definition at line 55 of file drv_mpu6050.c.
void EXTI15_10_IRQHandler | ( | void | ) |
Definition at line 346 of file drv_mpu6050.c.
void mpu6050_async_read_all | ( | volatile int16_t * | accData, |
volatile int16_t * | tempData, | ||
volatile int16_t * | gyroData, | ||
volatile uint64_t * | timeData | ||
) |
Definition at line 316 of file drv_mpu6050.c.
void mpu6050_exti_init | ( | int | boardVersion | ) |
Definition at line 129 of file drv_mpu6050.c.
void mpu6050_init | ( | bool | enableInterrupt, |
uint16_t * | acc1G, | ||
float * | gyroScale, | ||
int | boardVersion | ||
) |
Definition at line 175 of file drv_mpu6050.c.
bool mpu6050_new_data | ( | ) |
Definition at line 328 of file drv_mpu6050.c.
void mpu6050_read_accel | ( | int16_t * | accData | ) |
Definition at line 236 of file drv_mpu6050.c.
void mpu6050_read_all | ( | int16_t * | accData, |
int16_t * | gyroData, | ||
int16_t * | tempData, | ||
uint64_t * | time_us | ||
) |
Definition at line 216 of file drv_mpu6050.c.
void mpu6050_read_gyro | ( | int16_t * | gyroData | ) |
Definition at line 250 of file drv_mpu6050.c.
void mpu6050_read_temperature | ( | int16_t * | tempData | ) |
Definition at line 261 of file drv_mpu6050.c.
void mpu6050_request_async_update_all | ( | ) |
Definition at line 300 of file drv_mpu6050.c.
|
static |
Definition at line 119 of file drv_mpu6050.c.
|
static |
Definition at line 124 of file drv_mpu6050.c.
void read_all_CB | ( | uint8_t | result | ) |
Definition at line 283 of file drv_mpu6050.c.
|
static |
Definition at line 276 of file drv_mpu6050.c.
uint8_t all_buffer[14] |
Definition at line 280 of file drv_mpu6050.c.
|
static |
Definition at line 277 of file drv_mpu6050.c.
|
static |
Definition at line 94 of file drv_mpu6050.c.
uint64_t measurement_time = 0 |
Definition at line 281 of file drv_mpu6050.c.
|
static |
Definition at line 91 of file drv_mpu6050.c.
|
static |
Definition at line 279 of file drv_mpu6050.c.
|
static |
Definition at line 95 of file drv_mpu6050.c.
|
static |
Definition at line 278 of file drv_mpu6050.c.