71 void (*receive_callback)(uint8_t type),
72 void (*tap_callback)(uint8_t count, uint8_t direction),
73 void (*orient_callback)(uint8_t orientation)
78 int32_t gyro_offset_raw[3];
79 int32_t accel_offset_raw[3];
80 int32_t gyro_offset[3];
81 int32_t accel_offset[3];
82 int8_t gyro_orientation[9] = {1, 0, 0,
455 if (tap_callback != NULL)
902 gyro_offset, accel_offset);
990 int16_t (*gyro_raw)[3],
float (*gyro_dps)[3],
992 float *pitch,
float *roll,
float *yaw,
998 gyro_raw, gyro_dps, quat,
999 pitch, roll, yaw, l) != 0
driver mpu6500 dmp header file
uint8_t mpu6500_set_motion_threshold(mpu6500_handle_t *handle, uint8_t threshold)
set the motion_threshold
uint8_t mpu6500_set_ptat(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the temperature sensor
uint8_t mpu6500_set_accelerometer_choice(mpu6500_handle_t *handle, uint8_t choice)
set the accelerometer choice
uint8_t mpu6500_set_interface(mpu6500_handle_t *handle, mpu6500_interface_t interface)
set the chip interface
mpu6500_address_t
mpu6500 address enumeration definition
uint8_t mpu6500_set_gyro_standby(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the gyro standby
uint8_t mpu6500_set_addr_pin(mpu6500_handle_t *handle, mpu6500_address_t addr_pin)
set the chip address pin
uint8_t mpu6500_set_iic_bypass(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic bypass
uint8_t mpu6500_force_fifo_reset(mpu6500_handle_t *handle)
force reset the fifo
uint8_t mpu6500_set_accel_compare_with_previous_sample(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable accel compare with previous sample
uint8_t mpu6500_set_fifo(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable fifo
uint8_t mpu6500_set_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t level)
set the interrupt level
uint8_t mpu6500_set_fsync_interrupt_level(mpu6500_handle_t *handle, mpu6500_pin_level_t level)
set the fsync interrupt level
struct mpu6500_handle_s mpu6500_handle_t
mpu6500 handle structure definition
uint8_t mpu6500_set_gyroscope_choice(mpu6500_handle_t *handle, uint8_t choice)
set the gyroscope choice
uint8_t mpu6500_set_fsync_interrupt(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the fsync interrupt
uint8_t mpu6500_set_sleep(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the sleep mode
uint8_t mpu6500_set_interrupt_latch(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the interrupt latch
uint8_t mpu6500_set_gyroscope_range(mpu6500_handle_t *handle, mpu6500_gyroscope_range_t range)
set the gyroscope range
uint8_t mpu6500_set_clock_source(mpu6500_handle_t *handle, mpu6500_clock_source_t clock_source)
set the chip clock source
uint8_t mpu6500_set_wake_on_motion(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable wake on motion
uint8_t mpu6500_set_interrupt_read_clear(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the interrupt reading clear
uint8_t mpu6500_set_interrupt(mpu6500_handle_t *handle, mpu6500_interrupt_t type, mpu6500_bool_t enable)
enable or disable the interrupt
uint8_t mpu6500_set_fifo_enable(mpu6500_handle_t *handle, mpu6500_fifo_t fifo, mpu6500_bool_t enable)
enable or disable the fifo function
uint8_t mpu6500_deinit(mpu6500_handle_t *handle)
close the chip
uint8_t mpu6500_set_low_pass_filter(mpu6500_handle_t *handle, mpu6500_low_pass_filter_t filter)
set the low pass filter
uint8_t mpu6500_irq_handler(mpu6500_handle_t *handle)
irq handler
uint8_t mpu6500_set_extern_sync(mpu6500_handle_t *handle, mpu6500_extern_sync_t sync)
set the extern sync type
uint8_t mpu6500_set_low_power_accel_output_rate(mpu6500_handle_t *handle, mpu6500_low_power_accel_output_rate_t rate)
set the low power accel output rate
uint8_t mpu6500_set_fifo_mode(mpu6500_handle_t *handle, mpu6500_fifo_mode mode)
set the fifo mode
uint8_t mpu6500_set_disable_iic_slave(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic slave mode
uint8_t mpu6500_set_iic_master(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the iic master mode
uint8_t mpu6500_set_cycle_wake_up(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the cycle wake up mode
uint8_t mpu6500_motion_threshold_convert_to_register(mpu6500_handle_t *handle, float mg, uint8_t *reg)
convert the motion threshold to the register raw data
uint8_t mpu6500_init(mpu6500_handle_t *handle)
initialize the chip
uint8_t mpu6500_set_accelerometer_range(mpu6500_handle_t *handle, mpu6500_accelerometer_range_t range)
set the accelerometer range
uint8_t mpu6500_set_accelerometer_test(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
set the accelerometer test
mpu6500_interface_t
mpu6500 interface enumeration definition
uint8_t mpu6500_set_fifo_1024kb(mpu6500_handle_t *handle)
set fifo 1024kb
uint8_t mpu6500_set_standby_mode(mpu6500_handle_t *handle, mpu6500_source_t source, mpu6500_bool_t enable)
set source into standby mode
uint8_t mpu6500_set_accelerometer_low_pass_filter(mpu6500_handle_t *handle, mpu6500_accelerometer_low_pass_filter_t filter)
set the accelerometer low pass filter
uint8_t mpu6500_set_interrupt_pin_type(mpu6500_handle_t *handle, mpu6500_pin_type_t type)
set the interrupt pin type
uint8_t mpu6500_set_gyroscope_test(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
set the gyroscope test
uint8_t mpu6500_self_test(mpu6500_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3])
run the self test
uint8_t mpu6500_set_sample_rate_divider(mpu6500_handle_t *handle, uint8_t d)
set the sample rate divider
@ MPU6500_INTERRUPT_DATA_READY
@ MPU6500_INTERRUPT_FIFO_OVERFLOW
@ MPU6500_INTERRUPT_MOTION
@ MPU6500_INTERRUPT_FSYNC_INT
uint8_t mpu6500_dmp_set_tap_time(mpu6500_handle_t *handle, uint16_t ms)
dmp set the tap time
uint8_t mpu6500_dmp_set_accel_bias(mpu6500_handle_t *handle, int32_t bias[3])
dmp set the accel bias
uint8_t mpu6500_dmp_set_gyro_bias(mpu6500_handle_t *handle, int32_t bias[3])
dmp set the gyro bias
uint8_t mpu6500_dmp_gyro_accel_raw_offset_convert(mpu6500_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
uint8_t mpu6500_dmp_set_tap_thresh(mpu6500_handle_t *handle, mpu6500_axis_t axis, uint16_t mg_ms)
dmp set the tap thresh
uint8_t mpu6500_dmp_set_shake_reject_time(mpu6500_handle_t *handle, uint16_t ms)
dmp set the shake reject time
uint8_t mpu6500_dmp_set_min_tap_count(mpu6500_handle_t *handle, uint8_t cnt)
dmp set the min tap count
uint8_t mpu6500_dmp_set_fifo_rate(mpu6500_handle_t *handle, uint16_t rate)
dmp set the fifo rate
uint8_t mpu6500_dmp_set_orient_callback(mpu6500_handle_t *handle, void(*callback)(uint8_t orientation))
dmp set the orient callback
uint8_t mpu6500_dmp_read(mpu6500_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
uint8_t mpu6500_dmp_set_shake_reject_timeout(mpu6500_handle_t *handle, uint16_t ms)
dmp set the shake reject timeout
uint8_t mpu6500_dmp_set_tap_callback(mpu6500_handle_t *handle, void(*callback)(uint8_t count, uint8_t direction))
dmp set the tap callback
uint8_t mpu6500_dmp_set_pedometer_step_count(mpu6500_handle_t *handle, uint32_t count)
dmp set the pedometer step count
uint8_t mpu6500_dmp_set_tap_axes(mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
dmp enable or disable the tap axes
uint8_t mpu6500_dmp_load_firmware(mpu6500_handle_t *handle)
load the dmp firmware
uint8_t mpu6500_dmp_set_feature(mpu6500_handle_t *handle, uint16_t mask)
dmp enable or disable the dmp feature
uint8_t mpu6500_dmp_set_orientation(mpu6500_handle_t *handle, int8_t mat[9])
dmp set the orientation
uint8_t mpu6500_dmp_set_pedometer_walk_time(mpu6500_handle_t *handle, uint32_t ms)
dmp set the pedometer walk time
uint8_t mpu6500_dmp_set_interrupt_mode(mpu6500_handle_t *handle, mpu6500_dmp_interrupt_mode_t mode)
dmp set the interrupt mode
uint8_t mpu6500_dmp_set_tap_time_multi(mpu6500_handle_t *handle, uint16_t ms)
dmp set max time between taps to register as a multi tap
uint8_t mpu6500_dmp_set_shake_reject_thresh(mpu6500_handle_t *handle, uint16_t dps)
dmp set the shake reject thresh
uint8_t mpu6500_dmp_set_enable(mpu6500_handle_t *handle, mpu6500_bool_t enable)
enable or disable the dmp
uint8_t mpu6500_dmp_get_pedometer_step_count(mpu6500_handle_t *handle, uint32_t *count)
dmp get the pedometer step count
@ MPU6500_DMP_FEATURE_GYRO_CAL
@ MPU6500_DMP_FEATURE_PEDOMETER
@ MPU6500_DMP_FEATURE_SEND_CAL_GYRO
@ MPU6500_DMP_FEATURE_TAP
@ MPU6500_DMP_FEATURE_ORIENT
@ MPU6500_DMP_FEATURE_SEND_RAW_ACCEL
@ MPU6500_DMP_FEATURE_6X_QUAT
#define MPU6500_DMP_DEFAULT_TAP_X_THRESH
#define MPU6500_DMP_DEFAULT_INTERRUPT_FIFO_OVERFLOW
#define MPU6500_DMP_DEFAULT_EXTERN_SYNC
#define MPU6500_DMP_DEFAULT_PEOMETER_WALK_TIME
#define MPU6500_DMP_DEFAULT_ACCELEROMETER_RANGE
#define MPU6500_DMP_DEFAULT_INTERRUPT_MOTION
#define MPU6500_DMP_DEFAULT_FSYNC_INTERRUPT
#define MPU6500_DMP_DEFAULT_TAP_Y_THRESH
#define MPU6500_DMP_DEFAULT_TAP_TIME
#define MPU6500_DMP_DEFAULT_TAP_TIME_MULTI
#define MPU6500_DMP_DEFAULT_GYROSCOPE_CHOICE
#define MPU6500_DMP_DEFAULT_INTERRUPT_PIN_TYPE
#define MPU6500_DMP_DEFAULT_INTERRUPT_READ_CLEAR
#define MPU6500_DMP_DEFAULT_FIFO_MODE
#define MPU6500_DMP_DEFAULT_LOW_POWER_ACCEL_OUTPUT_RATE
#define MPU6500_DMP_DEFAULT_MOTION_THRESHOLD
uint8_t mpu6500_dmp_deinit(void)
dmp example deinit
#define MPU6500_DMP_DEFAULT_INTERRUPT_LATCH
#define MPU6500_DMP_DEFAULT_RATE
#define MPU6500_DMP_DEFAULT_GYROSCOPE_RANGE
#define MPU6500_DMP_DEFAULT_INTERRUPT_DMP
#define MPU6500_DMP_DEFAULT_IIC_BYPASS
#define MPU6500_DMP_DEFAULT_MIN_TAP_COUNT
#define MPU6500_DMP_DEFAULT_LOW_PASS_FILTER
#define MPU6500_DMP_DEFAULT_TAP_Z_THRESH
uint8_t mpu6500_dmp_irq_handler(void)
dmp irq
#define MPU6500_DMP_DEFAULT_SHAKE_REJECT_TIME
#define MPU6500_DMP_DEFAULT_FSYNC_INTERRUPT_LEVEL
#define MPU6500_DMP_DEFAULT_CLOCK_SOURCE
mpu6500 dmp example default definition
#define MPU6500_DMP_DEFAULT_ACCELEROMETER_LOW_PASS_FILTER
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
#define MPU6500_DMP_DEFAULT_INTERRUPT_DATA_READY
#define MPU6500_DMP_DEFAULT_INTERRUPT_PIN_LEVEL
#define MPU6500_DMP_DEFAULT_GYROSCOPE_STANDBY
#define MPU6500_DMP_DEFAULT_ACCELEROMETER_COMPARE
#define MPU6500_DMP_DEFAULT_SHAKE_REJECT_THRESH
#define MPU6500_DMP_DEFAULT_IIC_MASTER
#define MPU6500_DMP_DEFAULT_PEOMETER_STEP_COUNT
#define MPU6500_DMP_DEFAULT_SHAKE_REJECT_TIMEOUT
#define MPU6500_DMP_DEFAULT_INTERRUPT_FSYNC_INT
#define MPU6500_DMP_DEFAULT_INTERRUPT_MODE
#define MPU6500_DMP_DEFAULT_CYCLE_WAKE_UP
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
#define MPU6500_DMP_DEFAULT_ACCELEROMETER_CHOICE
uint8_t mpu6500_dmp_get_pedometer_counter(uint32_t *cnt)
dmp example get pedometer counter
uint8_t mpu6500_interface_spi_deinit(void)
interface spi bus deinit
void mpu6500_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t mpu6500_interface_iic_init(void)
interface iic bus init
uint8_t mpu6500_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t mpu6500_interface_iic_deinit(void)
interface iic bus deinit
uint8_t mpu6500_interface_spi_init(void)
interface spi bus init
uint8_t mpu6500_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
void mpu6500_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t mpu6500_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t mpu6500_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
#define DRIVER_MPU6500_LINK_RECEIVE_CALLBACK(HANDLE, FUC)
link receive_callback function
#define DRIVER_MPU6500_LINK_IIC_DEINIT(HANDLE, FUC)
link iic_deinit function
#define DRIVER_MPU6500_LINK_SPI_DEINIT(HANDLE, FUC)
link spi_deinit function
#define DRIVER_MPU6500_LINK_SPI_READ(HANDLE, FUC)
link spi_read function
#define DRIVER_MPU6500_LINK_SPI_WRITE(HANDLE, FUC)
link spi_write function
#define DRIVER_MPU6500_LINK_DELAY_MS(HANDLE, FUC)
link delay_ms function
#define DRIVER_MPU6500_LINK_IIC_INIT(HANDLE, FUC)
link iic_init function
#define DRIVER_MPU6500_LINK_INIT(HANDLE, STRUCTURE)
initialize mpu6500_handle_t structure
#define DRIVER_MPU6500_LINK_SPI_INIT(HANDLE, FUC)
link spi_init function
#define DRIVER_MPU6500_LINK_DEBUG_PRINT(HANDLE, FUC)
link debug_print function
#define DRIVER_MPU6500_LINK_IIC_READ(HANDLE, FUC)
link iic_read function
#define DRIVER_MPU6500_LINK_IIC_WRITE(HANDLE, FUC)
link iic_write function