LibDriver MPU6050  1.0.0
MPU6050 full-featured driver
driver_mpu6050_dmp.h
Go to the documentation of this file.
1 
37 #ifndef DRIVER_MPU6050_DMP_H
38 #define DRIVER_MPU6050_DMP_H
39 
41 
42 #ifdef __cplusplus
43 extern "C"{
44 #endif
45 
54 #define MPU6050_DMP_DEFAULT_CLOCK_SOURCE MPU6050_CLOCK_SOURCE_PLL_X_GYRO
55 #define MPU6050_DMP_DEFAULT_RATE 50
56 #define MPU6050_DMP_DEFAULT_ACCELEROMETER_RANGE MPU6050_ACCELEROMETER_RANGE_2G
57 #define MPU6050_DMP_DEFAULT_GYROSCOPE_RANGE MPU6050_GYROSCOPE_RANGE_2000DPS
58 #define MPU6050_DMP_DEFAULT_LOW_PASS_FILTER MPU6050_LOW_PASS_FILTER_3
59 #define MPU6050_DMP_DEFAULT_CYCLE_WAKE_UP MPU6050_BOOL_FALSE
60 #define MPU6050_DMP_DEFAULT_WAKE_UP_FREQUENCY MPU6050_WAKE_UP_FREQUENCY_1P25_HZ
61 #define MPU6050_DMP_DEFAULT_INTERRUPT_PIN_LEVEL MPU6050_PIN_LEVEL_LOW
62 #define MPU6050_DMP_DEFAULT_INTERRUPT_PIN_TYPE MPU6050_PIN_TYPE_PUSH_PULL
63 #define MPU6050_DMP_DEFAULT_INTERRUPT_MOTION MPU6050_BOOL_TRUE
64 #define MPU6050_DMP_DEFAULT_INTERRUPT_FIFO_OVERFLOW MPU6050_BOOL_TRUE
65 #define MPU6050_DMP_DEFAULT_INTERRUPT_DMP MPU6050_BOOL_FALSE
66 #define MPU6050_DMP_DEFAULT_INTERRUPT_I2C_MAST MPU6050_BOOL_FALSE
67 #define MPU6050_DMP_DEFAULT_INTERRUPT_DATA_READY MPU6050_BOOL_FALSE
68 #define MPU6050_DMP_DEFAULT_INTERRUPT_LATCH MPU6050_BOOL_TRUE
69 #define MPU6050_DMP_DEFAULT_INTERRUPT_READ_CLEAR MPU6050_BOOL_TRUE
70 #define MPU6050_DMP_DEFAULT_EXTERN_SYNC MPU6050_EXTERN_SYNC_INPUT_DISABLED
71 #define MPU6050_DMP_DEFAULT_FSYNC_INTERRUPT MPU6050_BOOL_FALSE
72 #define MPU6050_DMP_DEFAULT_FSYNC_INTERRUPT_LEVEL MPU6050_PIN_LEVEL_LOW
73 #define MPU6050_DMP_DEFAULT_IIC_MASTER MPU6050_BOOL_FALSE
74 #define MPU6050_DMP_DEFAULT_IIC_BYPASS MPU6050_BOOL_FALSE
75 #define MPU6050_DMP_DEFAULT_PEOMETER_WALK_TIME 200
76 #define MPU6050_DMP_DEFAULT_PEOMETER_STEP_COUNT 0
77 #define MPU6050_DMP_DEFAULT_SHAKE_REJECT_TIMEOUT 10
78 #define MPU6050_DMP_DEFAULT_SHAKE_REJECT_TIME 40
79 #define MPU6050_DMP_DEFAULT_SHAKE_REJECT_THRESH 200
80 #define MPU6050_DMP_DEFAULT_TAP_TIME_MULTI 200
81 #define MPU6050_DMP_DEFAULT_TAP_TIME 100
82 #define MPU6050_DMP_DEFAULT_MIN_TAP_COUNT 1
83 #define MPU6050_DMP_DEFAULT_TAP_X_THRESH 250
84 #define MPU6050_DMP_DEFAULT_TAP_Y_THRESH 250
85 #define MPU6050_DMP_DEFAULT_TAP_Z_THRESH 250
86 #define MPU6050_DMP_DEFAULT_INTERRUPT_MODE MPU6050_DMP_INTERRUPT_MODE_CONTINUOUS
87 #define MPU6050_DMP_DEFAULT_MOTION_DURATION 200
88 #define MPU6050_DMP_DEFAULT_MOTION_THRESHOLD 200
97 uint8_t mpu6050_dmp_irq_handler(void);
98 
110 uint8_t mpu6050_dmp_init(mpu6050_address_t addr_pin,
111  void (*receive_callback)(uint8_t type),
112  void (*tap_callback)(uint8_t count, uint8_t direction),
113  void (*orient_callback)(uint8_t orientation)
114  );
115 
123 uint8_t mpu6050_dmp_deinit(void);
124 
141 uint8_t mpu6050_dmp_read_all(int16_t (*accel_raw)[3], float (*accel_g)[3],
142  int16_t (*gyro_raw)[3], float (*gyro_dps)[3],
143  int32_t (*quat)[4],
144  float *pitch, float *roll, float *yaw,
145  uint16_t *l
146  );
147 
156 uint8_t mpu6050_dmp_get_pedometer_counter(uint32_t *cnt);
157 
162 #ifdef __cplusplus
163 }
164 #endif
165 
166 #endif
driver mpu6050 interface header file
mpu6050_address_t
mpu6050 address enumeration definition
Definition: driver_mpu6050.h:63
uint8_t mpu6050_dmp_init(mpu6050_address_t addr_pin, void(*receive_callback)(uint8_t type), void(*tap_callback)(uint8_t count, uint8_t direction), void(*orient_callback)(uint8_t orientation))
dmp example init
Definition: driver_mpu6050_dmp.c:71
uint8_t mpu6050_dmp_deinit(void)
dmp example deinit
Definition: driver_mpu6050_dmp.c:918
uint8_t mpu6050_dmp_get_pedometer_counter(uint32_t *cnt)
dmp example get pedometer counter
Definition: driver_mpu6050_dmp.c:865
uint8_t mpu6050_dmp_read_all(int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], int32_t(*quat)[4], float *pitch, float *roll, float *yaw, uint16_t *l)
dmp example read
Definition: driver_mpu6050_dmp.c:892
uint8_t mpu6050_dmp_irq_handler(void)
dmp irq
Definition: driver_mpu6050_dmp.c:48