LibDriver MPU6500
Loading...
Searching...
No Matches
driver_mpu6500_dmp.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_MPU6500_DMP_H
38#define DRIVER_MPU6500_DMP_H
39
41
42#ifdef __cplusplus
43extern "C"{
44#endif
45
50
54#define MPU6500_DMP_DEFAULT_CLOCK_SOURCE MPU6500_CLOCK_SOURCE_PLL
55#define MPU6500_DMP_DEFAULT_RATE 50
56#define MPU6500_DMP_DEFAULT_ACCELEROMETER_RANGE MPU6500_ACCELEROMETER_RANGE_2G
57#define MPU6500_DMP_DEFAULT_GYROSCOPE_RANGE MPU6500_GYROSCOPE_RANGE_2000DPS
58#define MPU6500_DMP_DEFAULT_LOW_PASS_FILTER MPU6500_LOW_PASS_FILTER_3
59#define MPU6500_DMP_DEFAULT_CYCLE_WAKE_UP MPU6500_BOOL_FALSE
60#define MPU6500_DMP_DEFAULT_INTERRUPT_PIN_LEVEL MPU6500_PIN_LEVEL_LOW
61#define MPU6500_DMP_DEFAULT_INTERRUPT_PIN_TYPE MPU6500_PIN_TYPE_PUSH_PULL
62#define MPU6500_DMP_DEFAULT_INTERRUPT_MOTION MPU6500_BOOL_TRUE
63#define MPU6500_DMP_DEFAULT_INTERRUPT_FIFO_OVERFLOW MPU6500_BOOL_TRUE
64#define MPU6500_DMP_DEFAULT_INTERRUPT_DMP MPU6500_BOOL_FALSE
65#define MPU6500_DMP_DEFAULT_INTERRUPT_FSYNC_INT MPU6500_BOOL_FALSE
66#define MPU6500_DMP_DEFAULT_INTERRUPT_DATA_READY MPU6500_BOOL_FALSE
67#define MPU6500_DMP_DEFAULT_INTERRUPT_LATCH MPU6500_BOOL_TRUE
68#define MPU6500_DMP_DEFAULT_INTERRUPT_READ_CLEAR MPU6500_BOOL_TRUE
69#define MPU6500_DMP_DEFAULT_EXTERN_SYNC MPU6500_EXTERN_SYNC_INPUT_DISABLED
70#define MPU6500_DMP_DEFAULT_FSYNC_INTERRUPT MPU6500_BOOL_FALSE
71#define MPU6500_DMP_DEFAULT_FSYNC_INTERRUPT_LEVEL MPU6500_PIN_LEVEL_LOW
72#define MPU6500_DMP_DEFAULT_IIC_MASTER MPU6500_BOOL_FALSE
73#define MPU6500_DMP_DEFAULT_IIC_BYPASS MPU6500_BOOL_FALSE
74#define MPU6500_DMP_DEFAULT_PEOMETER_WALK_TIME 200
75#define MPU6500_DMP_DEFAULT_PEOMETER_STEP_COUNT 0
76#define MPU6500_DMP_DEFAULT_SHAKE_REJECT_TIMEOUT 10
77#define MPU6500_DMP_DEFAULT_SHAKE_REJECT_TIME 40
78#define MPU6500_DMP_DEFAULT_SHAKE_REJECT_THRESH 200
79#define MPU6500_DMP_DEFAULT_TAP_TIME_MULTI 200
80#define MPU6500_DMP_DEFAULT_TAP_TIME 100
81#define MPU6500_DMP_DEFAULT_MIN_TAP_COUNT 1
82#define MPU6500_DMP_DEFAULT_TAP_X_THRESH 250
83#define MPU6500_DMP_DEFAULT_TAP_Y_THRESH 250
84#define MPU6500_DMP_DEFAULT_TAP_Z_THRESH 250
85#define MPU6500_DMP_DEFAULT_INTERRUPT_MODE MPU6500_DMP_INTERRUPT_MODE_CONTINUOUS
86#define MPU6500_DMP_DEFAULT_MOTION_THRESHOLD 200
87#define MPU6500_DMP_DEFAULT_GYROSCOPE_STANDBY MPU6500_BOOL_FALSE
88#define MPU6500_DMP_DEFAULT_FIFO_MODE MPU6500_FIFO_MODE_NORMAL
89#define MPU6500_DMP_DEFAULT_GYROSCOPE_CHOICE 0
90#define MPU6500_DMP_DEFAULT_ACCELEROMETER_CHOICE 0
91#define MPU6500_DMP_DEFAULT_ACCELEROMETER_LOW_PASS_FILTER MPU6500_ACCELEROMETER_LOW_PASS_FILTER_3
92#define MPU6500_DMP_DEFAULT_LOW_POWER_ACCEL_OUTPUT_RATE MPU6500_LOW_POWER_ACCEL_OUTPUT_RATE_62P50
93#define MPU6500_DMP_DEFAULT_ACCELEROMETER_COMPARE MPU6500_BOOL_TRUE
94#define MPU6500_DMP_DEFAULT_MAGNETOMETER_MODE MPU6500_MAGNETOMETER_MODE_CONTINUOUS2
95#define MPU6500_DMP_DEFAULT_MAGNETOMETER_BITS MPU6500_MAGNETOMETER_BITS_16
96#define MPU6500_DMP_DEFAULT_IIC_CLOCK MPU6500_IIC_CLOCK_400_KHZ
97#define MPU6500_DMP_DEFAULT_IIC_MULTI_MASTER MPU6500_BOOL_TRUE
98#define MPU6500_DMP_DEFAULT_IIC_WAIT_FOR_EXTERNAL_SENSOR MPU6500_BOOL_FALSE
99#define MPU6500_DMP_DEFAULT_IIC_READ_MODE MPU6500_IIC_READ_MODE_RESTART
100#define MPU6500_DMP_DEFAULT_IIC_DELAY MPU6500_BOOL_FALSE
101
109uint8_t mpu6500_dmp_irq_handler(void);
110
123uint8_t mpu6500_dmp_init(mpu6500_interface_t interface, mpu6500_address_t addr_pin,
124 void (*receive_callback)(uint8_t type),
125 void (*tap_callback)(uint8_t count, uint8_t direction),
126 void (*orient_callback)(uint8_t orientation)
127 );
128
136uint8_t mpu6500_dmp_deinit(void);
137
154uint8_t mpu6500_dmp_read_all(int16_t (*accel_raw)[3], float (*accel_g)[3],
155 int16_t (*gyro_raw)[3], float (*gyro_dps)[3],
156 int32_t (*quat)[4],
157 float *pitch, float *roll, float *yaw,
158 uint16_t *l
159 );
160
169uint8_t mpu6500_dmp_get_pedometer_counter(uint32_t *cnt);
170
174
175#ifdef __cplusplus
176}
177#endif
178
179#endif
driver mpu6500 interface header file
mpu6500_address_t
mpu6500 address enumeration definition
mpu6500_interface_t
mpu6500 interface enumeration definition
uint8_t mpu6500_dmp_deinit(void)
dmp example deinit
uint8_t mpu6500_dmp_irq_handler(void)
dmp irq
uint8_t mpu6500_dmp_init(mpu6500_interface_t interface, mpu6500_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
uint8_t mpu6500_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
uint8_t mpu6500_dmp_get_pedometer_counter(uint32_t *cnt)
dmp example get pedometer counter