LibDriver MPU6050  1.0.0
MPU6050 full-featured driver
driver_mpu6050.h
Go to the documentation of this file.
1 
37 #ifndef DRIVER_MPU6050_H
38 #define DRIVER_MPU6050_H
39 
40 #include <stdio.h>
41 #include <stdint.h>
42 #include <string.h>
43 
44 #ifdef __cplusplus
45 extern "C"{
46 #endif
47 
62 typedef enum
63 {
67 
71 typedef enum
72 {
78 
82 typedef enum
83 {
87 
91 typedef enum
92 {
100 
104 typedef enum
105 {
114 
118 typedef enum
119 {
124 
128 typedef enum
129 {
139 
143 typedef enum
144 {
153 
157 typedef enum
158 {
159  MPU6050_AXIS_Z = 0x05,
160  MPU6050_AXIS_Y = 0x06,
161  MPU6050_AXIS_X = 0x07,
163 
167 typedef enum
168 {
174 
178 typedef enum
179 {
185 
189 typedef enum
190 {
197 
201 typedef enum
202 {
206 
210 typedef enum
211 {
215 
219 typedef enum
220 {
227 
231 typedef enum
232 {
239 
243 typedef enum
244 {
262 
266 typedef enum
267 {
271 
275 typedef enum
276 {
280 
284 typedef enum
285 {
289 
293 typedef enum
294 {
298 
302 typedef enum
303 {
309 
313 typedef enum
314 {
324 
328 typedef enum
329 {
338 
351 typedef enum
352 {
356 
360 typedef enum
361 {
372 
376 typedef enum
377 {
385 
389 typedef enum
390 {
396 
409 typedef struct mpu6050_handle_s
410 {
411  uint8_t iic_addr;
412  uint8_t (*iic_init)(void);
413  uint8_t (*iic_deinit)(void);
414  uint8_t (*iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
415  uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
416  void (*delay_ms)(uint32_t ms);
417  void (*debug_print)(const char *const fmt, ...);
418  void (*receive_callback)(uint8_t type);
419  void (*dmp_tap_callback)(uint8_t count, uint8_t direction);
420  void (*dmp_orient_callback)(uint8_t orientation);
421  uint8_t inited;
422  uint8_t dmp_inited;
423  uint16_t orient;
424  uint16_t mask;
425  uint8_t buf[1024];
427 
431 typedef struct mpu6050_info_s
432 {
433  char chip_name[32];
434  char manufacturer_name[32];
435  char interface[8];
441  uint32_t driver_version;
443 
461 #define DRIVER_MPU6050_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
462 
469 #define DRIVER_MPU6050_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
470 
477 #define DRIVER_MPU6050_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
478 
485 #define DRIVER_MPU6050_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
486 
493 #define DRIVER_MPU6050_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
494 
501 #define DRIVER_MPU6050_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
502 
509 #define DRIVER_MPU6050_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
510 
517 #define DRIVER_MPU6050_LINK_RECEIVE_CALLBACK(HANDLE, FUC) (HANDLE)->receive_callback = FUC
518 
538 uint8_t mpu6050_info(mpu6050_info_t *info);
539 
549 uint8_t mpu6050_set_addr_pin(mpu6050_handle_t *handle, mpu6050_address_t addr_pin);
550 
560 uint8_t mpu6050_get_addr_pin(mpu6050_handle_t *handle, mpu6050_address_t *addr_pin);
561 
572 uint8_t mpu6050_irq_handler(mpu6050_handle_t *handle);
573 
586 uint8_t mpu6050_init(mpu6050_handle_t *handle);
587 
599 uint8_t mpu6050_deinit(mpu6050_handle_t *handle);
600 
619 uint8_t mpu6050_read(mpu6050_handle_t *handle, int16_t (*accel_raw)[3], float (*accel_g)[3],
620  int16_t (*gyro_raw)[3], float (*gyro_dps)[3], uint16_t *len);
621 
634 uint8_t mpu6050_read_temperature(mpu6050_handle_t *handle, int16_t (*raw), float *degrees);
635 
647 uint8_t mpu6050_set_fifo(mpu6050_handle_t *handle, mpu6050_bool_t enable);
648 
660 uint8_t mpu6050_get_fifo(mpu6050_handle_t *handle, mpu6050_bool_t *enable);
661 
673 
686 
698 uint8_t mpu6050_get_iic_master(mpu6050_handle_t *handle, mpu6050_bool_t *enable);
699 
710 uint8_t mpu6050_fifo_reset(mpu6050_handle_t *handle);
711 
723 uint8_t mpu6050_get_fifo_reset(mpu6050_handle_t *handle, mpu6050_bool_t *enable);
724 
736 
749 
760 uint8_t mpu6050_sensor_reset(mpu6050_handle_t *handle);
761 
774 
785 uint8_t mpu6050_device_reset(mpu6050_handle_t *handle);
786 
799 
812 
825 
838 
851 
864 
877 
889 uint8_t mpu6050_set_sleep(mpu6050_handle_t *handle, mpu6050_bool_t enable);
890 
902 uint8_t mpu6050_get_sleep(mpu6050_handle_t *handle, mpu6050_bool_t *enable);
903 
917 
931 
944 
957 
969 uint8_t mpu6050_get_fifo_count(mpu6050_handle_t *handle, uint16_t* count);
970 
983 uint8_t mpu6050_fifo_get(mpu6050_handle_t *handle, uint8_t *buf, uint16_t len);
984 
997 uint8_t mpu6050_fifo_set(mpu6050_handle_t *handle, uint8_t *buf, uint16_t len);
998 
1011 
1023 uint8_t mpu6050_set_sample_rate_divider(mpu6050_handle_t *handle, uint8_t d);
1024 
1036 uint8_t mpu6050_get_sample_rate_divider(mpu6050_handle_t *handle, uint8_t *d);
1037 
1050 
1063 
1076 
1089 
1103 
1117 
1130 
1143 
1157 
1171 
1184 
1197 
1211 
1225 
1238 
1251 
1264 
1277 
1290 
1303 
1316 
1329 
1342 
1355 
1368 
1381 
1393 uint8_t mpu6050_set_iic_bypass(mpu6050_handle_t *handle, mpu6050_bool_t enable);
1394 
1406 uint8_t mpu6050_get_iic_bypass(mpu6050_handle_t *handle, mpu6050_bool_t *enable);
1407 
1421 
1435 
1447 uint8_t mpu6050_get_interrupt_status(mpu6050_handle_t *handle, uint8_t *status);
1448 
1461 uint8_t mpu6050_set_gyroscope_x_test(mpu6050_handle_t *handle, uint8_t data);
1462 
1474 uint8_t mpu6050_get_gyroscope_x_test(mpu6050_handle_t *handle, uint8_t *data);
1475 
1488 uint8_t mpu6050_set_gyroscope_y_test(mpu6050_handle_t *handle, uint8_t data);
1489 
1501 uint8_t mpu6050_get_gyroscope_y_test(mpu6050_handle_t *handle, uint8_t *data);
1502 
1515 uint8_t mpu6050_set_gyroscope_z_test(mpu6050_handle_t *handle, uint8_t data);
1516 
1528 uint8_t mpu6050_get_gyroscope_z_test(mpu6050_handle_t *handle, uint8_t *data);
1529 
1542 uint8_t mpu6050_set_accelerometer_x_test(mpu6050_handle_t *handle, uint8_t data);
1543 
1555 uint8_t mpu6050_get_accelerometer_x_test(mpu6050_handle_t *handle, uint8_t *data);
1556 
1569 uint8_t mpu6050_set_accelerometer_y_test(mpu6050_handle_t *handle, uint8_t data);
1570 
1582 uint8_t mpu6050_get_accelerometer_y_test(mpu6050_handle_t *handle, uint8_t *data);
1583 
1596 uint8_t mpu6050_set_accelerometer_z_test(mpu6050_handle_t *handle, uint8_t data);
1597 
1609 uint8_t mpu6050_get_accelerometer_z_test(mpu6050_handle_t *handle, uint8_t *data);
1610 
1622 uint8_t mpu6050_set_motion_threshold(mpu6050_handle_t *handle, uint8_t threshold);
1623 
1635 uint8_t mpu6050_get_motion_threshold(mpu6050_handle_t *handle, uint8_t *threshold);
1636 
1648 uint8_t mpu6050_motion_threshold_convert_to_register(mpu6050_handle_t *handle, float mg, uint8_t *reg);
1649 
1661 uint8_t mpu6050_motion_threshold_convert_to_data(mpu6050_handle_t *handle, uint8_t reg, float *mg);
1662 
1674 uint8_t mpu6050_set_motion_duration(mpu6050_handle_t *handle, uint8_t duration);
1675 
1687 uint8_t mpu6050_get_motion_duration(mpu6050_handle_t *handle, uint8_t *duration);
1688 
1700 uint8_t mpu6050_motion_duration_convert_to_register(mpu6050_handle_t *handle, uint8_t ms, uint8_t *reg);
1701 
1713 uint8_t mpu6050_motion_duration_convert_to_data(mpu6050_handle_t *handle, uint8_t reg, uint8_t *ms);
1714 
1727 
1740 uint8_t mpu6050_self_test(mpu6050_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3]);
1741 
1754 
1767 
1780 
1793 
1806 
1819 
1832 
1845 
1860 
1875 
1890 
1905 
1919 uint8_t mpu6050_set_iic_address(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t addr_7bit);
1920 
1934 uint8_t mpu6050_get_iic_address(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t *addr_7bit);
1935 
1949 uint8_t mpu6050_set_iic_register(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t reg);
1950 
1964 uint8_t mpu6050_get_iic_register(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t *reg);
1965 
1979 uint8_t mpu6050_set_iic_data_out(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t data);
1980 
1994 uint8_t mpu6050_get_iic_data_out(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t *data);
1995 
2010 
2025 
2040 
2055 
2070 
2085 
2100 
2115 
2130 uint8_t mpu6050_set_iic_transferred_len(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t len);
2131 
2145 uint8_t mpu6050_get_iic_transferred_len(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t *len);
2146 
2158 uint8_t mpu6050_get_iic_status(mpu6050_handle_t *handle, uint8_t *status);
2159 
2173 
2187 
2200 
2212 uint8_t mpu6050_get_iic4_enable(mpu6050_handle_t *handle, mpu6050_bool_t *enable);
2213 
2226 
2239 
2252 
2265 
2278 uint8_t mpu6050_set_iic_delay(mpu6050_handle_t *handle, uint8_t delay);
2279 
2291 uint8_t mpu6050_get_iic_delay(mpu6050_handle_t *handle, uint8_t *delay);
2292 
2304 uint8_t mpu6050_set_iic4_data_out(mpu6050_handle_t *handle, uint8_t data);
2305 
2317 uint8_t mpu6050_get_iic4_data_out(mpu6050_handle_t *handle, uint8_t *data);
2318 
2330 uint8_t mpu6050_set_iic4_data_in(mpu6050_handle_t *handle, uint8_t data);
2331 
2343 uint8_t mpu6050_get_iic4_data_in(mpu6050_handle_t *handle, uint8_t *data);
2344 
2358 uint8_t mpu6050_read_extern_sensor_data(mpu6050_handle_t *handle, uint8_t *data, uint8_t len);
2359 
2385 
2398 uint8_t mpu6050_dmp_set_pedometer_walk_time(mpu6050_handle_t *handle, uint32_t ms);
2399 
2412 uint8_t mpu6050_dmp_get_pedometer_walk_time(mpu6050_handle_t *handle, uint32_t *ms);
2413 
2426 uint8_t mpu6050_dmp_set_pedometer_step_count(mpu6050_handle_t *handle, uint32_t count);
2427 
2440 uint8_t mpu6050_dmp_get_pedometer_step_count(mpu6050_handle_t *handle, uint32_t *count);
2441 
2454 uint8_t mpu6050_dmp_set_shake_reject_timeout(mpu6050_handle_t *handle, uint16_t ms);
2455 
2468 uint8_t mpu6050_dmp_get_shake_reject_timeout(mpu6050_handle_t *handle, uint16_t *ms);
2469 
2482 uint8_t mpu6050_dmp_set_shake_reject_time(mpu6050_handle_t *handle, uint16_t ms);
2483 
2496 uint8_t mpu6050_dmp_get_shake_reject_time(mpu6050_handle_t *handle, uint16_t *ms);
2497 
2510 uint8_t mpu6050_dmp_set_shake_reject_thresh(mpu6050_handle_t *handle, uint16_t dps);
2511 
2524 uint8_t mpu6050_dmp_get_shake_reject_thresh(mpu6050_handle_t *handle, uint16_t *dps);
2525 
2538 uint8_t mpu6050_dmp_set_tap_time_multi(mpu6050_handle_t *handle, uint16_t ms);
2539 
2552 uint8_t mpu6050_dmp_get_tap_time_multi(mpu6050_handle_t *handle, uint16_t *ms);
2553 
2566 uint8_t mpu6050_dmp_set_tap_time(mpu6050_handle_t *handle, uint16_t ms);
2567 
2580 uint8_t mpu6050_dmp_get_tap_time(mpu6050_handle_t *handle, uint16_t *ms);
2581 
2595 uint8_t mpu6050_dmp_set_min_tap_count(mpu6050_handle_t *handle, uint8_t cnt);
2596 
2609 uint8_t mpu6050_dmp_get_min_tap_count(mpu6050_handle_t *handle, uint8_t *cnt);
2610 
2625 
2640 
2656 uint8_t mpu6050_dmp_set_tap_thresh(mpu6050_handle_t *handle, mpu6050_axis_t axis, uint16_t mg_ms);
2657 
2672 uint8_t mpu6050_dmp_get_tap_thresh(mpu6050_handle_t *handle, mpu6050_axis_t axis, uint16_t *mg_ms);
2673 
2687 uint8_t mpu6050_dmp_set_fifo_rate(mpu6050_handle_t *handle, uint16_t rate);
2688 
2701 uint8_t mpu6050_dmp_get_fifo_rate(mpu6050_handle_t *handle, uint16_t *rate);
2702 
2716 
2730 
2744 
2758 
2771 uint8_t mpu6050_dmp_set_gyro_bias(mpu6050_handle_t *handle, int32_t bias[3]);
2772 
2785 uint8_t mpu6050_dmp_set_accel_bias(mpu6050_handle_t *handle, int32_t bias[3]);
2786 
2799 uint8_t mpu6050_dmp_set_orientation(mpu6050_handle_t *handle, int8_t mat[9]);
2800 
2817 uint8_t mpu6050_dmp_set_feature(mpu6050_handle_t *handle, uint16_t mask);
2818 
2843 uint8_t mpu6050_dmp_read(mpu6050_handle_t *handle,
2844  int16_t (*accel_raw)[3], float (*accel_g)[3],
2845  int16_t (*gyro_raw)[3], float (*gyro_dps)[3],
2846  int32_t (*quat)[4],
2847  float *pitch, float *roll, float *yaw,
2848  uint16_t *l
2849  );
2850 
2863 uint8_t mpu6050_dmp_set_tap_callback(mpu6050_handle_t *handle, void (*callback)(uint8_t count, uint8_t direction));
2864 
2877 uint8_t mpu6050_dmp_set_orient_callback(mpu6050_handle_t *handle, void (*callback)(uint8_t orientation));
2878 
2891 uint8_t mpu6050_dmp_set_enable(mpu6050_handle_t *handle, mpu6050_bool_t enable);
2892 
2909  int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3],
2910  int32_t gyro_offset[3], int32_t accel_offset[3]);
2911 
2936 uint8_t mpu6050_set_reg(mpu6050_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
2937 
2951 uint8_t mpu6050_get_reg(mpu6050_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
2952 
2961 #ifdef __cplusplus
2962 }
2963 #endif
2964 
2965 #endif
uint8_t mpu6050_get_interrupt_latch(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the interrupt latch status
Definition: driver_mpu6050.c:6273
mpu6050_iic_mode_t
mpu6050 iic mode enumeration definition
Definition: driver_mpu6050.h:276
uint8_t mpu6050_get_motion_duration(mpu6050_handle_t *handle, uint8_t *duration)
get the motion duration
Definition: driver_mpu6050.c:7519
uint8_t mpu6050_get_iic4_transaction_mode(mpu6050_handle_t *handle, mpu6050_iic4_transaction_mode_t *mode)
get the iic4 transaction mode
Definition: driver_mpu6050.c:10290
uint8_t mpu6050_get_motion_threshold(mpu6050_handle_t *handle, uint8_t *threshold)
get the motion_threshold
Definition: driver_mpu6050.c:7395
uint8_t mpu6050_get_temperature_sensor(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the temperature sensor status
Definition: driver_mpu6050.c:4893
uint8_t mpu6050_get_iic_byte_swap(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_bool_t *enable)
get the iic byte swap status
Definition: driver_mpu6050.c:9294
uint8_t mpu6050_get_iic_transferred_len(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t *len)
get the iic transferred length
Definition: driver_mpu6050.c:9883
uint8_t mpu6050_set_gyroscope_z_test(mpu6050_handle_t *handle, uint8_t data)
set the gyroscope z test
Definition: driver_mpu6050.c:6934
uint8_t mpu6050_get_accelerometer_test(mpu6050_handle_t *handle, mpu6050_axis_t axis, mpu6050_bool_t *enable)
get the accelerometer test
Definition: driver_mpu6050.c:5861
mpu6050_pin_type_t
mpu6050 pin type enumeration definition
Definition: driver_mpu6050.h:211
uint8_t mpu6050_get_iic_read_mode(mpu6050_handle_t *handle, mpu6050_iic_read_mode_t *mode)
get the iic read mode
Definition: driver_mpu6050.c:8036
uint8_t mpu6050_get_accelerometer_x_test(mpu6050_handle_t *handle, uint8_t *data)
get the accelerometer x test
Definition: driver_mpu6050.c:7089
mpu6050_iic_read_mode_t
mpu6050 iic read mode enumeration definition
Definition: driver_mpu6050.h:267
mpu6050_wake_up_frequency_t
mpu6050 wake up frequency enumeration definition
Definition: driver_mpu6050.h:72
uint8_t mpu6050_get_iic4_data_out(mpu6050_handle_t *handle, uint8_t *data)
get the iic4 data out
Definition: driver_mpu6050.c:10451
struct mpu6050_info_s mpu6050_info_t
mpu6050 information structure definition
mpu6050_iic_clock_t
mpu6050 iic clock enumeration definition
Definition: driver_mpu6050.h:244
uint8_t mpu6050_get_interrupt_status(mpu6050_handle_t *handle, uint8_t *status)
get the interrupt status
Definition: driver_mpu6050.c:6722
uint8_t mpu6050_set_iic4_enable(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the iic4
Definition: driver_mpu6050.c:10081
uint8_t mpu6050_set_iic_transaction_mode(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_iic_transaction_mode_t mode)
set the iic transaction mode
Definition: driver_mpu6050.c:9375
uint8_t mpu6050_set_iic4_data_in(mpu6050_handle_t *handle, uint8_t data)
set the iic4 data in
Definition: driver_mpu6050.c:10486
uint8_t mpu6050_get_cycle_wake_up(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the cycle wake up mode status
Definition: driver_mpu6050.c:4975
uint8_t mpu6050_iic_master_reset(mpu6050_handle_t *handle)
reset the iic master controller
Definition: driver_mpu6050.c:4521
uint8_t mpu6050_set_gyroscope_y_test(mpu6050_handle_t *handle, uint8_t data)
set the gyroscope y test
Definition: driver_mpu6050.c:6846
uint8_t mpu6050_set_iic_wait_for_external_sensor(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable iic wait for external sensor
Definition: driver_mpu6050.c:7909
uint8_t mpu6050_sensor_reset(mpu6050_handle_t *handle)
reset all sensors
Definition: driver_mpu6050.c:4602
uint8_t mpu6050_get_low_pass_filter(mpu6050_handle_t *handle, mpu6050_low_pass_filter_t *filter)
get the low pass filter
Definition: driver_mpu6050.c:5611
uint8_t mpu6050_set_wake_up_frequency(mpu6050_handle_t *handle, mpu6050_wake_up_frequency_t frequency)
set the wake up frequency
Definition: driver_mpu6050.c:5178
mpu6050_gyroscope_range_t
mpu6050 gyroscope range enumeration definition
Definition: driver_mpu6050.h:168
uint8_t mpu6050_set_accelerometer_x_test(mpu6050_handle_t *handle, uint8_t data)
set the accelerometer x test
Definition: driver_mpu6050.c:7022
uint8_t mpu6050_fifo_reset(mpu6050_handle_t *handle)
reset the fifo
Definition: driver_mpu6050.c:4440
uint8_t mpu6050_get_interrupt_pin_type(mpu6050_handle_t *handle, mpu6050_pin_type_t *type)
get the interrupt pin type
Definition: driver_mpu6050.c:6191
uint8_t mpu6050_get_iic_address(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t *addr_7bit)
get the iic address
Definition: driver_mpu6050.c:8571
uint8_t mpu6050_get_iic_group_order(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_iic_group_order_t *order)
get the iic group order
Definition: driver_mpu6050.c:9682
uint8_t mpu6050_init(mpu6050_handle_t *handle)
initialize the chip
Definition: driver_mpu6050.c:3717
uint8_t mpu6050_set_iic_multi_master(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable iic multi master
Definition: driver_mpu6050.c:7827
uint8_t mpu6050_set_iic_group_order(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_iic_group_order_t order)
set the iic group order
Definition: driver_mpu6050.c:9569
uint8_t mpu6050_get_iic_clock(mpu6050_handle_t *handle, mpu6050_iic_clock_t *clk)
get the iic clock
Definition: driver_mpu6050.c:7790
uint8_t mpu6050_set_iic_address(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t addr_7bit)
set the iic address
Definition: driver_mpu6050.c:8439
mpu6050_extern_sync_t
mpu6050 extern sync enumeration definition
Definition: driver_mpu6050.h:129
uint8_t mpu6050_read_temperature(mpu6050_handle_t *handle, int16_t(*raw), float *degrees)
read the temperature
Definition: driver_mpu6050.c:4134
uint8_t mpu6050_set_accelerometer_range(mpu6050_handle_t *handle, mpu6050_accelerometer_range_t range)
set the accelerometer range
Definition: driver_mpu6050.c:5898
uint8_t mpu6050_device_reset(mpu6050_handle_t *handle)
reset the chip
Definition: driver_mpu6050.c:4683
mpu6050_address_t
mpu6050 address enumeration definition
Definition: driver_mpu6050.h:63
uint8_t mpu6050_set_standby_mode(mpu6050_handle_t *handle, mpu6050_source_t source, mpu6050_bool_t enable)
set source into standby mode
Definition: driver_mpu6050.c:5095
mpu6050_iic_delay_t
mpu6050 iic delay enumeration definition
Definition: driver_mpu6050.h:329
uint8_t mpu6050_get_iic_fifo_enable(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_bool_t *enable)
get the iic fifo status
Definition: driver_mpu6050.c:8153
uint8_t mpu6050_get_interrupt_read_clear(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the interrupt reading clear status
Definition: driver_mpu6050.c:6355
uint8_t mpu6050_set_iic_register(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t reg)
set the iic register
Definition: driver_mpu6050.c:8663
uint8_t mpu6050_motion_threshold_convert_to_register(mpu6050_handle_t *handle, float mg, uint8_t *reg)
convert the motion threshold to the register raw data
Definition: driver_mpu6050.c:7430
uint8_t mpu6050_get_iic_master_reset(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the iic master reset status
Definition: driver_mpu6050.c:4566
uint8_t mpu6050_get_interrupt(mpu6050_handle_t *handle, mpu6050_interrupt_t type, mpu6050_bool_t *enable)
get the interrupt status
Definition: driver_mpu6050.c:6685
uint8_t mpu6050_self_test(mpu6050_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3])
run the self test
Definition: driver_mpu6050.c:7661
uint8_t mpu6050_set_gyroscope_x_test(mpu6050_handle_t *handle, uint8_t data)
set the gyroscope x test
Definition: driver_mpu6050.c:6758
uint8_t mpu6050_get_accelerometer_z_test(mpu6050_handle_t *handle, uint8_t *data)
get the accelerometer z test
Definition: driver_mpu6050.c:7315
uint8_t mpu6050_set_iic_delay(mpu6050_handle_t *handle, uint8_t delay)
set the iic delay
Definition: driver_mpu6050.c:10328
mpu6050_source_t
mpu6050 source enumeration definition
Definition: driver_mpu6050.h:92
uint8_t mpu6050_get_sleep(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the sleep status
Definition: driver_mpu6050.c:5057
uint8_t mpu6050_set_iic_transferred_len(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t len)
set the iic transferred length
Definition: driver_mpu6050.c:9764
uint8_t mpu6050_set_motion_threshold(mpu6050_handle_t *handle, uint8_t threshold)
set the motion_threshold
Definition: driver_mpu6050.c:7360
uint8_t mpu6050_get_sample_rate_divider(mpu6050_handle_t *handle, uint8_t *d)
get the sample rate divider
Definition: driver_mpu6050.c:5449
uint8_t mpu6050_set_iic4_interrupt(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the iic4 interrupt
Definition: driver_mpu6050.c:10163
uint8_t mpu6050_set_iic_clock(mpu6050_handle_t *handle, mpu6050_iic_clock_t clk)
set the iic clock
Definition: driver_mpu6050.c:7745
uint8_t mpu6050_set_iic4_data_out(mpu6050_handle_t *handle, uint8_t data)
set the iic4 data out
Definition: driver_mpu6050.c:10416
uint8_t mpu6050_fifo_get(mpu6050_handle_t *handle, uint8_t *buf, uint16_t len)
fifo read bytes
Definition: driver_mpu6050.c:5298
uint8_t mpu6050_get_accelerometer_y_test(mpu6050_handle_t *handle, uint8_t *data)
get the accelerometer y test
Definition: driver_mpu6050.c:7202
uint8_t mpu6050_set_sample_rate_divider(mpu6050_handle_t *handle, uint8_t d)
set the sample rate divider
Definition: driver_mpu6050.c:5414
uint8_t mpu6050_set_motion_duration(mpu6050_handle_t *handle, uint8_t duration)
set the motion duration
Definition: driver_mpu6050.c:7484
uint8_t mpu6050_set_gyroscope_range(mpu6050_handle_t *handle, mpu6050_gyroscope_range_t range)
set the gyroscope range
Definition: driver_mpu6050.c:5732
uint8_t mpu6050_set_addr_pin(mpu6050_handle_t *handle, mpu6050_address_t addr_pin)
set the chip address pin
Definition: driver_mpu6050.c:3672
uint8_t mpu6050_get_wake_up_frequency(mpu6050_handle_t *handle, mpu6050_wake_up_frequency_t *frequency)
get the wake up frequency
Definition: driver_mpu6050.c:5223
uint8_t mpu6050_get_interrupt_level(mpu6050_handle_t *handle, mpu6050_pin_level_t *level)
get the interrupt level
Definition: driver_mpu6050.c:6109
mpu6050_iic_group_order_t
mpu6050 iic group order enumeration definition
Definition: driver_mpu6050.h:303
uint8_t mpu6050_set_interrupt_read_clear(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the interrupt reading clear
Definition: driver_mpu6050.c:6310
uint8_t mpu6050_read(mpu6050_handle_t *handle, int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], uint16_t *len)
read the data
Definition: driver_mpu6050.c:3891
uint8_t mpu6050_set_fifo_enable(mpu6050_handle_t *handle, mpu6050_fifo_t fifo, mpu6050_bool_t enable)
enable or disable the fifo function
Definition: driver_mpu6050.c:5981
mpu6050_fifo_t
mpu6050 fifo enumeration definition
Definition: driver_mpu6050.h:190
mpu6050_clock_source_t
mpu6050 clock source enumeration definition
Definition: driver_mpu6050.h:105
uint8_t mpu6050_set_iic_byte_swap(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_bool_t enable)
enable or disable the iic byte swap
Definition: driver_mpu6050.c:9181
uint8_t mpu6050_get_gyroscope_z_test(mpu6050_handle_t *handle, uint8_t *data)
get the gyroscope z test
Definition: driver_mpu6050.c:6985
uint8_t mpu6050_get_iic_data_out(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t *data)
get the iic data out
Definition: driver_mpu6050.c:8911
uint8_t mpu6050_get_fifo_enable(mpu6050_handle_t *handle, mpu6050_fifo_t fifo, mpu6050_bool_t *enable)
get the fifo function status
Definition: driver_mpu6050.c:6027
uint8_t mpu6050_get_extern_sync(mpu6050_handle_t *handle, mpu6050_extern_sync_t *sync)
get the extern sync type
Definition: driver_mpu6050.c:5529
uint8_t mpu6050_get_iic_master(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the iic master status
Definition: driver_mpu6050.c:4404
uint8_t mpu6050_set_accelerometer_y_test(mpu6050_handle_t *handle, uint8_t data)
set the accelerometer y test
Definition: driver_mpu6050.c:7135
uint8_t mpu6050_set_interrupt(mpu6050_handle_t *handle, mpu6050_interrupt_t type, mpu6050_bool_t enable)
enable or disable the interrupt
Definition: driver_mpu6050.c:6639
uint8_t mpu6050_set_iic_bypass(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the iic bypass
Definition: driver_mpu6050.c:6556
uint8_t mpu6050_info(mpu6050_info_t *info)
get the chip's information
Definition: driver_mpu6050.c:10650
uint8_t mpu6050_set_gyroscope_test(mpu6050_handle_t *handle, mpu6050_axis_t axis, mpu6050_bool_t enable)
set the gyroscope test
Definition: driver_mpu6050.c:5649
uint8_t mpu6050_get_fsync_interrupt_level(mpu6050_handle_t *handle, mpu6050_pin_level_t *level)
get the fsync interrupt level
Definition: driver_mpu6050.c:6437
mpu6050_pin_level_t
mpu6050 pin level enumeration definition
Definition: driver_mpu6050.h:202
uint8_t mpu6050_get_iic4_enable(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the iic4 status
Definition: driver_mpu6050.c:10126
uint8_t mpu6050_set_cycle_wake_up(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the cycle wake up mode
Definition: driver_mpu6050.c:4930
uint8_t mpu6050_get_device_reset(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the device reset status
Definition: driver_mpu6050.c:4729
uint8_t mpu6050_get_fifo_reset(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the fifo reset status
Definition: driver_mpu6050.c:4485
uint8_t mpu6050_set_interrupt_pin_type(mpu6050_handle_t *handle, mpu6050_pin_type_t type)
set the interrupt pin type
Definition: driver_mpu6050.c:6146
uint8_t mpu6050_set_signal_path_reset(mpu6050_handle_t *handle, mpu6050_signal_path_reset_t path)
set the signal path reset
Definition: driver_mpu6050.c:5369
uint8_t mpu6050_get_iic_enable(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_bool_t *enable)
get the iic status
Definition: driver_mpu6050.c:9100
uint8_t mpu6050_get_iic_transaction_mode(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_iic_transaction_mode_t *mode)
get the iic transaction mode
Definition: driver_mpu6050.c:9488
uint8_t mpu6050_irq_handler(mpu6050_handle_t *handle)
irq handler
Definition: driver_mpu6050.c:4171
uint8_t mpu6050_get_standby_mode(mpu6050_handle_t *handle, mpu6050_source_t source, mpu6050_bool_t *enable)
get the source mode
Definition: driver_mpu6050.c:5141
uint8_t mpu6050_set_iic_master(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the iic master mode
Definition: driver_mpu6050.c:4359
uint8_t mpu6050_force_fifo_reset(mpu6050_handle_t *handle)
force reset the fifo
Definition: driver_mpu6050.c:4324
uint8_t mpu6050_get_gyroscope_x_test(mpu6050_handle_t *handle, uint8_t *data)
get the gyroscope x test
Definition: driver_mpu6050.c:6809
uint8_t mpu6050_get_gyroscope_y_test(mpu6050_handle_t *handle, uint8_t *data)
get the gyroscope y test
Definition: driver_mpu6050.c:6897
uint8_t mpu6050_set_temperature_sensor(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the temperature sensor
Definition: driver_mpu6050.c:4848
uint8_t mpu6050_set_interrupt_latch(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the interrupt latch
Definition: driver_mpu6050.c:6228
mpu6050_interrupt_t
mpu6050 interrupt enumeration definition
Definition: driver_mpu6050.h:220
uint8_t mpu6050_set_iic4_transaction_mode(mpu6050_handle_t *handle, mpu6050_iic4_transaction_mode_t mode)
set the iic4 transaction mode
Definition: driver_mpu6050.c:10245
mpu6050_accelerometer_range_t
mpu6050 accelerometer range enumeration definition
Definition: driver_mpu6050.h:179
mpu6050_signal_path_reset_t
mpu6050 signal path reset enumeration definition
Definition: driver_mpu6050.h:119
uint8_t mpu6050_get_gyroscope_test(mpu6050_handle_t *handle, mpu6050_axis_t axis, mpu6050_bool_t *enable)
get the gyroscope test
Definition: driver_mpu6050.c:5695
mpu6050_iic_slave_t
mpu6050 iic slave enumeration definition
Definition: driver_mpu6050.h:232
mpu6050_iic_transaction_mode_t
mpu6050 iic transaction mode enumeration definition
Definition: driver_mpu6050.h:285
uint8_t mpu6050_get_fsync_interrupt(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the fsync interrupt status
Definition: driver_mpu6050.c:6519
uint8_t mpu6050_set_iic_enable(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_bool_t enable)
enable or disable the iic
Definition: driver_mpu6050.c:8987
uint8_t mpu6050_set_accelerometer_test(mpu6050_handle_t *handle, mpu6050_axis_t axis, mpu6050_bool_t enable)
set the accelerometer test
Definition: driver_mpu6050.c:5815
uint8_t mpu6050_set_extern_sync(mpu6050_handle_t *handle, mpu6050_extern_sync_t sync)
set the extern sync type
Definition: driver_mpu6050.c:5484
uint8_t mpu6050_get_iic_bypass(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the iic bypass status
Definition: driver_mpu6050.c:6601
uint8_t mpu6050_set_sleep(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the sleep mode
Definition: driver_mpu6050.c:5012
struct mpu6050_handle_s mpu6050_handle_t
mpu6050 handle structure definition
uint8_t mpu6050_motion_threshold_convert_to_data(mpu6050_handle_t *handle, uint8_t reg, float *mg)
convert the register raw data to the motion threshold
Definition: driver_mpu6050.c:7457
uint8_t mpu6050_get_clock_source(mpu6050_handle_t *handle, mpu6050_clock_source_t *clock_source)
get the chip clock source
Definition: driver_mpu6050.c:4811
mpu6050_bool_t
mpu6050 bool enumeration definition
Definition: driver_mpu6050.h:83
uint8_t mpu6050_set_fifo(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable fifo
Definition: driver_mpu6050.c:4243
uint8_t mpu6050_set_interrupt_level(mpu6050_handle_t *handle, mpu6050_pin_level_t level)
set the interrupt level
Definition: driver_mpu6050.c:6064
uint8_t mpu6050_read_extern_sensor_data(mpu6050_handle_t *handle, uint8_t *data, uint8_t len)
read the extern sensor data
Definition: driver_mpu6050.c:10558
uint8_t mpu6050_get_addr_pin(mpu6050_handle_t *handle, mpu6050_address_t *addr_pin)
get the chip address pin
Definition: driver_mpu6050.c:3693
uint8_t mpu6050_motion_duration_convert_to_register(mpu6050_handle_t *handle, uint8_t ms, uint8_t *reg)
convert the motion duration to the register raw data
Definition: driver_mpu6050.c:7554
uint8_t mpu6050_get_iic_status(mpu6050_handle_t *handle, uint8_t *status)
get the iic status
Definition: driver_mpu6050.c:9962
uint8_t mpu6050_get_accelerometer_range(mpu6050_handle_t *handle, mpu6050_accelerometer_range_t *range)
get the accelerometer range
Definition: driver_mpu6050.c:5943
uint8_t mpu6050_set_iic_data_out(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t data)
set the iic data out
Definition: driver_mpu6050.c:8835
uint8_t mpu6050_get_iic_wait_for_external_sensor(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the iic wait for external sensor status
Definition: driver_mpu6050.c:7954
uint8_t mpu6050_set_iic_fifo_enable(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_bool_t enable)
enable or disable the iic fifo
Definition: driver_mpu6050.c:8075
mpu6050_low_pass_filter_t
mpu6050 low pass filter enumeration definition
Definition: driver_mpu6050.h:144
uint8_t mpu6050_get_fifo(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the fifo status
Definition: driver_mpu6050.c:4288
uint8_t mpu6050_set_clock_source(mpu6050_handle_t *handle, mpu6050_clock_source_t clock_source)
set the chip clock source
Definition: driver_mpu6050.c:4766
uint8_t mpu6050_fifo_set(mpu6050_handle_t *handle, uint8_t *buf, uint16_t len)
fifo write bytes
Definition: driver_mpu6050.c:5334
uint8_t mpu6050_get_iic_register(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, uint8_t *reg)
get the iic register
Definition: driver_mpu6050.c:8749
uint8_t mpu6050_get_gyroscope_range(mpu6050_handle_t *handle, mpu6050_gyroscope_range_t *range)
get the gyroscope range
Definition: driver_mpu6050.c:5777
uint8_t mpu6050_set_iic_read_mode(mpu6050_handle_t *handle, mpu6050_iic_read_mode_t mode)
set the iic read mode
Definition: driver_mpu6050.c:7991
uint8_t mpu6050_get_iic4_data_in(mpu6050_handle_t *handle, uint8_t *data)
get the iic4 data in
Definition: driver_mpu6050.c:10521
uint8_t mpu6050_get_sensor_reset(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the sensor reset status
Definition: driver_mpu6050.c:4647
uint8_t mpu6050_get_fifo_count(mpu6050_handle_t *handle, uint16_t *count)
get the fifo counter value
Definition: driver_mpu6050.c:5260
uint8_t mpu6050_set_fsync_interrupt(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the fsync interrupt
Definition: driver_mpu6050.c:6474
uint8_t mpu6050_motion_duration_convert_to_data(mpu6050_handle_t *handle, uint8_t reg, uint8_t *ms)
convert the register raw data to the motion duration
Definition: driver_mpu6050.c:7581
mpu6050_iic4_transaction_mode_t
mpu6050 iic4 transaction mode enumeration definition
Definition: driver_mpu6050.h:294
uint8_t mpu6050_set_low_pass_filter(mpu6050_handle_t *handle, mpu6050_low_pass_filter_t filter)
set the low pass filter
Definition: driver_mpu6050.c:5566
uint8_t mpu6050_set_iic_mode(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_iic_mode_t mode)
set the iic mode
Definition: driver_mpu6050.c:8215
uint8_t mpu6050_deinit(mpu6050_handle_t *handle)
close the chip
Definition: driver_mpu6050.c:3837
uint8_t mpu6050_get_iic_delay_enable(mpu6050_handle_t *handle, mpu6050_iic_delay_t delay, mpu6050_bool_t *enable)
get the iic delay status
Definition: driver_mpu6050.c:10044
uint8_t mpu6050_set_iic_delay_enable(mpu6050_handle_t *handle, mpu6050_iic_delay_t delay, mpu6050_bool_t enable)
enable or disable the iic delay
Definition: driver_mpu6050.c:9998
mpu6050_iic_status_t
mpu6050 iic status enumeration definition
Definition: driver_mpu6050.h:314
uint8_t mpu6050_get_iic_mode(mpu6050_handle_t *handle, mpu6050_iic_slave_t slave, mpu6050_iic_mode_t *mode)
get the iic mode
Definition: driver_mpu6050.c:8347
uint8_t mpu6050_get_iic_multi_master(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the iic multi master status
Definition: driver_mpu6050.c:7872
uint8_t mpu6050_get_iic_delay(mpu6050_handle_t *handle, uint8_t *delay)
get the iic delay
Definition: driver_mpu6050.c:10379
uint8_t mpu6050_set_fsync_interrupt_level(mpu6050_handle_t *handle, mpu6050_pin_level_t level)
set the fsync interrupt level
Definition: driver_mpu6050.c:6392
uint8_t mpu6050_set_force_accel_sample(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable force accel sample
Definition: driver_mpu6050.c:7608
mpu6050_axis_t
mpu6050 axis enumeration definition
Definition: driver_mpu6050.h:158
uint8_t mpu6050_set_accelerometer_z_test(mpu6050_handle_t *handle, uint8_t data)
set the accelerometer z test
Definition: driver_mpu6050.c:7248
uint8_t mpu6050_get_iic4_interrupt(mpu6050_handle_t *handle, mpu6050_bool_t *enable)
get the iic4 interrupt status
Definition: driver_mpu6050.c:10208
@ MPU6050_IIC_MODE_READ
Definition: driver_mpu6050.h:278
@ MPU6050_IIC_MODE_WRITE
Definition: driver_mpu6050.h:277
@ MPU6050_PIN_TYPE_PUSH_PULL
Definition: driver_mpu6050.h:212
@ MPU6050_PIN_TYPE_OPEN_DRAIN
Definition: driver_mpu6050.h:213
@ MPU6050_IIC_READ_MODE_RESTART
Definition: driver_mpu6050.h:268
@ MPU6050_IIC_READ_MODE_STOP_AND_START
Definition: driver_mpu6050.h:269
@ MPU6050_WAKE_UP_FREQUENCY_1P25_HZ
Definition: driver_mpu6050.h:73
@ MPU6050_WAKE_UP_FREQUENCY_40_HZ
Definition: driver_mpu6050.h:76
@ MPU6050_WAKE_UP_FREQUENCY_20_HZ
Definition: driver_mpu6050.h:75
@ MPU6050_WAKE_UP_FREQUENCY_5_HZ
Definition: driver_mpu6050.h:74
@ MPU6050_IIC_CLOCK_296_KHZ
Definition: driver_mpu6050.h:249
@ MPU6050_IIC_CLOCK_364_KHZ
Definition: driver_mpu6050.h:260
@ MPU6050_IIC_CLOCK_348_KHZ
Definition: driver_mpu6050.h:245
@ MPU6050_IIC_CLOCK_286_KHZ
Definition: driver_mpu6050.h:250
@ MPU6050_IIC_CLOCK_267_KHZ
Definition: driver_mpu6050.h:252
@ MPU6050_IIC_CLOCK_308_KHZ
Definition: driver_mpu6050.h:248
@ MPU6050_IIC_CLOCK_400_KHZ
Definition: driver_mpu6050.h:258
@ MPU6050_IIC_CLOCK_333_KHZ
Definition: driver_mpu6050.h:246
@ MPU6050_IIC_CLOCK_320_KHZ
Definition: driver_mpu6050.h:247
@ MPU6050_IIC_CLOCK_258_KHZ
Definition: driver_mpu6050.h:253
@ MPU6050_IIC_CLOCK_276_KHZ
Definition: driver_mpu6050.h:251
@ MPU6050_IIC_CLOCK_381_KHZ
Definition: driver_mpu6050.h:259
@ MPU6050_IIC_CLOCK_444_KHZ
Definition: driver_mpu6050.h:256
@ MPU6050_IIC_CLOCK_421_KHZ
Definition: driver_mpu6050.h:257
@ MPU6050_IIC_CLOCK_500_KHZ
Definition: driver_mpu6050.h:254
@ MPU6050_IIC_CLOCK_471_KHZ
Definition: driver_mpu6050.h:255
@ MPU6050_GYROSCOPE_RANGE_250DPS
Definition: driver_mpu6050.h:169
@ MPU6050_GYROSCOPE_RANGE_2000DPS
Definition: driver_mpu6050.h:172
@ MPU6050_GYROSCOPE_RANGE_1000DPS
Definition: driver_mpu6050.h:171
@ MPU6050_GYROSCOPE_RANGE_500DPS
Definition: driver_mpu6050.h:170
@ MPU6050_EXTERN_SYNC_GYRO_ZOUT_L
Definition: driver_mpu6050.h:134
@ MPU6050_EXTERN_SYNC_GYRO_YOUT_L
Definition: driver_mpu6050.h:133
@ MPU6050_EXTERN_SYNC_GYRO_XOUT_L
Definition: driver_mpu6050.h:132
@ MPU6050_EXTERN_SYNC_ACCEL_YOUT_L
Definition: driver_mpu6050.h:136
@ MPU6050_EXTERN_SYNC_INPUT_DISABLED
Definition: driver_mpu6050.h:130
@ MPU6050_EXTERN_SYNC_ACCEL_ZOUT_L
Definition: driver_mpu6050.h:137
@ MPU6050_EXTERN_SYNC_ACCEL_XOUT_L
Definition: driver_mpu6050.h:135
@ MPU6050_EXTERN_SYNC_TEMP_OUT_L
Definition: driver_mpu6050.h:131
@ MPU6050_ADDRESS_AD0_LOW
Definition: driver_mpu6050.h:64
@ MPU6050_ADDRESS_AD0_HIGH
Definition: driver_mpu6050.h:65
@ MPU6050_IIC_DELAY_SLAVE_3
Definition: driver_mpu6050.h:333
@ MPU6050_IIC_DELAY_SLAVE_1
Definition: driver_mpu6050.h:335
@ MPU6050_IIC_DELAY_SLAVE_2
Definition: driver_mpu6050.h:334
@ MPU6050_IIC_DELAY_SLAVE_4
Definition: driver_mpu6050.h:332
@ MPU6050_IIC_DELAY_SLAVE_0
Definition: driver_mpu6050.h:336
@ MPU6050_IIC_DELAY_ES_SHADOW
Definition: driver_mpu6050.h:330
@ MPU6050_SOURCE_ACC_Y
Definition: driver_mpu6050.h:94
@ MPU6050_SOURCE_GYRO_Y
Definition: driver_mpu6050.h:97
@ MPU6050_SOURCE_ACC_Z
Definition: driver_mpu6050.h:95
@ MPU6050_SOURCE_ACC_X
Definition: driver_mpu6050.h:93
@ MPU6050_SOURCE_GYRO_Z
Definition: driver_mpu6050.h:98
@ MPU6050_SOURCE_GYRO_X
Definition: driver_mpu6050.h:96
@ MPU6050_IIC_GROUP_ORDER_EVEN
Definition: driver_mpu6050.h:304
@ MPU6050_IIC_GROUP_ORDER_ODD
Definition: driver_mpu6050.h:306
@ MPU6050_FIFO_XG
Definition: driver_mpu6050.h:192
@ MPU6050_FIFO_ACCEL
Definition: driver_mpu6050.h:195
@ MPU6050_FIFO_TEMP
Definition: driver_mpu6050.h:191
@ MPU6050_FIFO_ZG
Definition: driver_mpu6050.h:194
@ MPU6050_FIFO_YG
Definition: driver_mpu6050.h:193
@ MPU6050_CLOCK_SOURCE_INTERNAL_8MHZ
Definition: driver_mpu6050.h:106
@ MPU6050_CLOCK_SOURCE_STOP_CLOCK
Definition: driver_mpu6050.h:112
@ MPU6050_CLOCK_SOURCE_PLL_EXT_32P768_KHZ
Definition: driver_mpu6050.h:110
@ MPU6050_CLOCK_SOURCE_PLL_X_GYRO
Definition: driver_mpu6050.h:107
@ MPU6050_CLOCK_SOURCE_PLL_Z_GYRO
Definition: driver_mpu6050.h:109
@ MPU6050_CLOCK_SOURCE_PLL_Y_GYRO
Definition: driver_mpu6050.h:108
@ MPU6050_CLOCK_SOURCE_PLL_EXT_19P2_MHZ
Definition: driver_mpu6050.h:111
@ MPU6050_PIN_LEVEL_HIGH
Definition: driver_mpu6050.h:203
@ MPU6050_PIN_LEVEL_LOW
Definition: driver_mpu6050.h:204
@ MPU6050_INTERRUPT_DMP
Definition: driver_mpu6050.h:224
@ MPU6050_INTERRUPT_I2C_MAST
Definition: driver_mpu6050.h:223
@ MPU6050_INTERRUPT_DATA_READY
Definition: driver_mpu6050.h:225
@ MPU6050_INTERRUPT_FIFO_OVERFLOW
Definition: driver_mpu6050.h:222
@ MPU6050_INTERRUPT_MOTION
Definition: driver_mpu6050.h:221
@ MPU6050_ACCELEROMETER_RANGE_16G
Definition: driver_mpu6050.h:183
@ MPU6050_ACCELEROMETER_RANGE_4G
Definition: driver_mpu6050.h:181
@ MPU6050_ACCELEROMETER_RANGE_2G
Definition: driver_mpu6050.h:180
@ MPU6050_ACCELEROMETER_RANGE_8G
Definition: driver_mpu6050.h:182
@ MPU6050_SIGNAL_PATH_RESET_GYRO
Definition: driver_mpu6050.h:122
@ MPU6050_SIGNAL_PATH_RESET_ACCEL
Definition: driver_mpu6050.h:121
@ MPU6050_SIGNAL_PATH_RESET_TEMP
Definition: driver_mpu6050.h:120
@ MPU6050_IIC_SLAVE_3
Definition: driver_mpu6050.h:236
@ MPU6050_IIC_SLAVE_1
Definition: driver_mpu6050.h:234
@ MPU6050_IIC_SLAVE_0
Definition: driver_mpu6050.h:233
@ MPU6050_IIC_SLAVE_2
Definition: driver_mpu6050.h:235
@ MPU6050_IIC_SLAVE_4
Definition: driver_mpu6050.h:237
@ MPU6050_IIC_TRANSACTION_MODE_DATA
Definition: driver_mpu6050.h:286
@ MPU6050_IIC_TRANSACTION_MODE_REG_DATA
Definition: driver_mpu6050.h:287
@ MPU6050_BOOL_TRUE
Definition: driver_mpu6050.h:85
@ MPU6050_BOOL_FALSE
Definition: driver_mpu6050.h:84
@ MPU6050_LOW_PASS_FILTER_0
Definition: driver_mpu6050.h:145
@ MPU6050_LOW_PASS_FILTER_4
Definition: driver_mpu6050.h:149
@ MPU6050_LOW_PASS_FILTER_3
Definition: driver_mpu6050.h:148
@ MPU6050_LOW_PASS_FILTER_6
Definition: driver_mpu6050.h:151
@ MPU6050_LOW_PASS_FILTER_1
Definition: driver_mpu6050.h:146
@ MPU6050_LOW_PASS_FILTER_5
Definition: driver_mpu6050.h:150
@ MPU6050_LOW_PASS_FILTER_2
Definition: driver_mpu6050.h:147
@ MPU6050_IIC4_TRANSACTION_MODE_REG
Definition: driver_mpu6050.h:296
@ MPU6050_IIC4_TRANSACTION_MODE_DATA
Definition: driver_mpu6050.h:295
@ MPU6050_IIC_STATUS_IIC_SLV0_NACK
Definition: driver_mpu6050.h:322
@ MPU6050_IIC_STATUS_PASS_THROUGH
Definition: driver_mpu6050.h:315
@ MPU6050_IIC_STATUS_IIC_SLV4_NACK
Definition: driver_mpu6050.h:318
@ MPU6050_IIC_STATUS_IIC_SLV1_NACK
Definition: driver_mpu6050.h:321
@ MPU6050_IIC_STATUS_IIC_LOST_ARB
Definition: driver_mpu6050.h:317
@ MPU6050_IIC_STATUS_IIC_SLV4_DONE
Definition: driver_mpu6050.h:316
@ MPU6050_IIC_STATUS_IIC_SLV3_NACK
Definition: driver_mpu6050.h:319
@ MPU6050_IIC_STATUS_IIC_SLV2_NACK
Definition: driver_mpu6050.h:320
@ MPU6050_AXIS_X
Definition: driver_mpu6050.h:161
@ MPU6050_AXIS_Z
Definition: driver_mpu6050.h:159
@ MPU6050_AXIS_Y
Definition: driver_mpu6050.h:160
uint8_t mpu6050_dmp_set_tap_thresh(mpu6050_handle_t *handle, mpu6050_axis_t axis, uint16_t mg_ms)
dmp set the tap thresh
Definition: driver_mpu6050.c:2918
mpu6050_dmp_orient_t
mpu6050 dmp orient enumeration definition
Definition: driver_mpu6050.h:390
uint8_t mpu6050_dmp_set_gyro_bias(mpu6050_handle_t *handle, int32_t bias[3])
dmp set the gyro bias
Definition: driver_mpu6050.c:1948
uint8_t mpu6050_dmp_set_orientation(mpu6050_handle_t *handle, int8_t mat[9])
dmp set the orientation
Definition: driver_mpu6050.c:2141
uint8_t mpu6050_dmp_get_shake_reject_time(mpu6050_handle_t *handle, uint16_t *ms)
dmp get the shake reject time
Definition: driver_mpu6050.c:1240
uint8_t mpu6050_dmp_get_shake_reject_thresh(mpu6050_handle_t *handle, uint16_t *dps)
dmp get the shake reject thresh
Definition: driver_mpu6050.c:1335
uint8_t mpu6050_dmp_set_enable(mpu6050_handle_t *handle, mpu6050_bool_t enable)
enable or disable the dmp
Definition: driver_mpu6050.c:3517
uint8_t mpu6050_dmp_load_firmware(mpu6050_handle_t *handle)
load the dmp firmware
Definition: driver_mpu6050.c:836
uint8_t mpu6050_dmp_set_tap_callback(mpu6050_handle_t *handle, void(*callback)(uint8_t count, uint8_t direction))
dmp set the tap callback
Definition: driver_mpu6050.c:3449
uint8_t mpu6050_dmp_set_orient_callback(mpu6050_handle_t *handle, void(*callback)(uint8_t orientation))
dmp set the orient callback
Definition: driver_mpu6050.c:3483
uint8_t mpu6050_dmp_set_shake_reject_timeout(mpu6050_handle_t *handle, uint16_t ms)
dmp set the shake reject timeout
Definition: driver_mpu6050.c:1101
uint8_t mpu6050_dmp_read(mpu6050_handle_t *handle, 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 read the data
Definition: driver_mpu6050.c:3179
uint8_t mpu6050_dmp_set_tap_time_multi(mpu6050_handle_t *handle, uint16_t ms)
dmp set max time between taps to register as a multi tap
Definition: driver_mpu6050.c:1383
uint8_t mpu6050_dmp_set_accel_bias(mpu6050_handle_t *handle, int32_t bias[3])
dmp set the accel bias
Definition: driver_mpu6050.c:2038
uint8_t mpu6050_dmp_get_pedometer_step_count(mpu6050_handle_t *handle, uint32_t *count)
dmp get the pedometer step count
Definition: driver_mpu6050.c:1056
uint8_t mpu6050_dmp_set_pedometer_step_count(mpu6050_handle_t *handle, uint32_t count)
dmp set the pedometer step count
Definition: driver_mpu6050.c:1008
uint8_t mpu6050_dmp_get_tap_axes(mpu6050_handle_t *handle, mpu6050_axis_t axis, mpu6050_bool_t *enable)
dmp get the tap axes status
Definition: driver_mpu6050.c:2862
uint8_t mpu6050_dmp_set_feature(mpu6050_handle_t *handle, uint16_t mask)
dmp enable or disable the dmp feature
Definition: driver_mpu6050.c:2245
uint8_t mpu6050_dmp_gyro_accel_raw_offset_convert(mpu6050_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3], int32_t gyro_offset[3], int32_t accel_offset[3])
dmp gyro accel raw offset convert
Definition: driver_mpu6050.c:3572
uint8_t mpu6050_dmp_get_tap_thresh(mpu6050_handle_t *handle, mpu6050_axis_t axis, uint16_t *mg_ms)
dmp get the tap thresh
Definition: driver_mpu6050.c:3063
mpu6050_dmp_feature_t
mpu6050 dmp feature enumeration definition
Definition: driver_mpu6050.h:361
uint8_t mpu6050_dmp_set_6x_quaternion(mpu6050_handle_t *handle, mpu6050_bool_t enable)
dmp enable or disable generate 6 axis quaternions from dmp
Definition: driver_mpu6050.c:1802
uint8_t mpu6050_dmp_get_pedometer_walk_time(mpu6050_handle_t *handle, uint32_t *ms)
dmp get the pedometer walk time
Definition: driver_mpu6050.c:963
uint8_t mpu6050_dmp_set_shake_reject_thresh(mpu6050_handle_t *handle, uint16_t dps)
dmp set the shake reject thresh
Definition: driver_mpu6050.c:1285
uint8_t mpu6050_dmp_get_tap_time(mpu6050_handle_t *handle, uint16_t *ms)
dmp get the tap time
Definition: driver_mpu6050.c:1522
mpu6050_dmp_interrupt_mode_t
mpu6050 dmp interrupt mode enumeration definition
Definition: driver_mpu6050.h:352
uint8_t mpu6050_dmp_set_fifo_rate(mpu6050_handle_t *handle, uint16_t rate)
dmp set the fifo rate
Definition: driver_mpu6050.c:2688
uint8_t mpu6050_dmp_set_tap_axes(mpu6050_handle_t *handle, mpu6050_axis_t axis, mpu6050_bool_t enable)
dmp enable or disable the tap axes
Definition: driver_mpu6050.c:2801
uint8_t mpu6050_dmp_set_shake_reject_time(mpu6050_handle_t *handle, uint16_t ms)
dmp set the shake reject time
Definition: driver_mpu6050.c:1193
uint8_t mpu6050_dmp_get_fifo_rate(mpu6050_handle_t *handle, uint16_t *rate)
dmp get the fifo rate
Definition: driver_mpu6050.c:2754
uint8_t mpu6050_dmp_set_min_tap_count(mpu6050_handle_t *handle, uint8_t cnt)
dmp set the min tap count
Definition: driver_mpu6050.c:1568
uint8_t mpu6050_dmp_get_shake_reject_timeout(mpu6050_handle_t *handle, uint16_t *ms)
dmp get the shake reject timeout
Definition: driver_mpu6050.c:1148
uint8_t mpu6050_dmp_get_min_tap_count(mpu6050_handle_t *handle, uint8_t *cnt)
dmp get the min tap count
Definition: driver_mpu6050.c:1618
uint8_t mpu6050_dmp_get_tap_time_multi(mpu6050_handle_t *handle, uint16_t *ms)
dmp get max time between taps to register as a multi tap
Definition: driver_mpu6050.c:1430
uint8_t mpu6050_dmp_set_gyro_calibrate(mpu6050_handle_t *handle, mpu6050_bool_t enable)
dmp enable or disable gyro calibrate
Definition: driver_mpu6050.c:1662
uint8_t mpu6050_dmp_set_tap_time(mpu6050_handle_t *handle, uint16_t ms)
dmp set the tap time
Definition: driver_mpu6050.c:1475
uint8_t mpu6050_dmp_set_3x_quaternion(mpu6050_handle_t *handle, mpu6050_bool_t enable)
dmp enable or disable generate 3 axis quaternions from dmp
Definition: driver_mpu6050.c:1725
uint8_t mpu6050_dmp_set_interrupt_mode(mpu6050_handle_t *handle, mpu6050_dmp_interrupt_mode_t mode)
dmp set the interrupt mode
Definition: driver_mpu6050.c:1879
uint8_t mpu6050_dmp_set_pedometer_walk_time(mpu6050_handle_t *handle, uint32_t ms)
dmp set the pedometer walk time
Definition: driver_mpu6050.c:914
mpu6050_dmp_tap_t
mpu6050 dmp tap enumeration definition
Definition: driver_mpu6050.h:377
@ MPU6050_DMP_ORIENT_PORTRAIT
Definition: driver_mpu6050.h:391
@ MPU6050_DMP_ORIENT_REVERSE_LANDSCAPE
Definition: driver_mpu6050.h:394
@ MPU6050_DMP_ORIENT_LANDSCAPE
Definition: driver_mpu6050.h:392
@ MPU6050_DMP_ORIENT_REVERSE_PORTRAIT
Definition: driver_mpu6050.h:393
@ MPU6050_DMP_FEATURE_PEDOMETER
Definition: driver_mpu6050.h:365
@ MPU6050_DMP_FEATURE_TAP
Definition: driver_mpu6050.h:362
@ MPU6050_DMP_FEATURE_ORIENT
Definition: driver_mpu6050.h:363
@ MPU6050_DMP_FEATURE_6X_QUAT
Definition: driver_mpu6050.h:366
@ MPU6050_DMP_FEATURE_GYRO_CAL
Definition: driver_mpu6050.h:367
@ MPU6050_DMP_FEATURE_SEND_RAW_ACCEL
Definition: driver_mpu6050.h:368
@ MPU6050_DMP_FEATURE_SEND_CAL_GYRO
Definition: driver_mpu6050.h:370
@ MPU6050_DMP_FEATURE_3X_QUAT
Definition: driver_mpu6050.h:364
@ MPU6050_DMP_FEATURE_SEND_RAW_GYRO
Definition: driver_mpu6050.h:369
@ MPU6050_DMP_INTERRUPT_MODE_CONTINUOUS
Definition: driver_mpu6050.h:353
@ MPU6050_DMP_INTERRUPT_MODE_GESTURE
Definition: driver_mpu6050.h:354
@ MPU6050_DMP_TAP_X_UP
Definition: driver_mpu6050.h:378
@ MPU6050_DMP_TAP_X_DOWN
Definition: driver_mpu6050.h:379
@ MPU6050_DMP_TAP_Y_UP
Definition: driver_mpu6050.h:380
@ MPU6050_DMP_TAP_Y_DOWN
Definition: driver_mpu6050.h:381
@ MPU6050_DMP_TAP_Z_DOWN
Definition: driver_mpu6050.h:383
@ MPU6050_DMP_TAP_Z_UP
Definition: driver_mpu6050.h:382
uint8_t mpu6050_get_reg(mpu6050_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
get the chip register
Definition: driver_mpu6050.c:10628
uint8_t mpu6050_set_reg(mpu6050_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
Definition: driver_mpu6050.c:10601
mpu6050 handle structure definition
Definition: driver_mpu6050.h:410
uint8_t buf[1024]
Definition: driver_mpu6050.h:425
uint8_t dmp_inited
Definition: driver_mpu6050.h:422
uint8_t inited
Definition: driver_mpu6050.h:421
void(* dmp_tap_callback)(uint8_t count, uint8_t direction)
Definition: driver_mpu6050.h:419
void(* delay_ms)(uint32_t ms)
Definition: driver_mpu6050.h:416
void(* receive_callback)(uint8_t type)
Definition: driver_mpu6050.h:418
void(* debug_print)(const char *const fmt,...)
Definition: driver_mpu6050.h:417
uint16_t mask
Definition: driver_mpu6050.h:424
uint8_t(* iic_init)(void)
Definition: driver_mpu6050.h:412
uint16_t orient
Definition: driver_mpu6050.h:423
void(* dmp_orient_callback)(uint8_t orientation)
Definition: driver_mpu6050.h:420
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
Definition: driver_mpu6050.h:415
uint8_t iic_addr
Definition: driver_mpu6050.h:411
uint8_t(* iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
Definition: driver_mpu6050.h:414
uint8_t(* iic_deinit)(void)
Definition: driver_mpu6050.h:413
mpu6050 information structure definition
Definition: driver_mpu6050.h:432
float temperature_max
Definition: driver_mpu6050.h:440
float supply_voltage_max_v
Definition: driver_mpu6050.h:437
uint32_t driver_version
Definition: driver_mpu6050.h:441
float temperature_min
Definition: driver_mpu6050.h:439
float max_current_ma
Definition: driver_mpu6050.h:438
char manufacturer_name[32]
Definition: driver_mpu6050.h:434
float supply_voltage_min_v
Definition: driver_mpu6050.h:436
char interface[8]
Definition: driver_mpu6050.h:435
char chip_name[32]
Definition: driver_mpu6050.h:433