39#define MPU9X50_MIN_SAMPLE_RATE (4)
40#define MPU9X50_MAX_SAMPLE_RATE (1000)
41#define MPU9X50_DEFAULT_SAMPLE_RATE (50)
42#define MPU9X50_MIN_COMP_SMPL_RATE (1)
43#define MPU9X50_MAX_COMP_SMPL_RATE (100)
50 MPU9X50_SENSOR_PWR_OFF = 0x00,
51 MPU9X50_SENSOR_PWR_ON = 0x01,
58 MPU9X50_HW_ADDR_HEX_68 = 0x68,
59 MPU9X50_HW_ADDR_HEX_69 = 0x69,
66 MPU9X50_COMP_ADDR_HEX_0C = 0x0C,
67 MPU9X50_COMP_ADDR_HEX_0D = 0x0D,
68 MPU9X50_COMP_ADDR_HEX_0E = 0x0E,
69 MPU9X50_COMP_ADDR_HEX_0F = 0x0F,
76 MPU9X50_GYRO_FSR_250DPS = 0x00,
77 MPU9X50_GYRO_FSR_500DPS = 0x01,
78 MPU9X50_GYRO_FSR_1000DPS = 0x02,
79 MPU9X50_GYRO_FSR_2000DPS = 0x03,
86 MPU9X50_ACCEL_FSR_2G = 0x00,
87 MPU9X50_ACCEL_FSR_4G = 0x01,
88 MPU9X50_ACCEL_FSR_8G = 0x02,
89 MPU9X50_ACCEL_FSR_16G = 0x03,
96 MPU9X50_FILTER_188HZ = 0x01,
97 MPU9X50_FILTER_98HZ = 0x02,
98 MPU9X50_FILTER_42HZ = 0x03,
99 MPU9X50_FILTER_20HZ = 0x04,
100 MPU9X50_FILTER_10HZ = 0x05,
101 MPU9X50_FILTER_5HZ = 0x06,
int mpu9x50_read_temperature(const mpu9x50_t *dev, int32_t *output)
Read temperature value from the given MPU9X50 device, returned in m°C.
mpu9x50_lpf_t
Possible low pass filter values.
int mpu9x50_set_compass_power(mpu9x50_t *dev, mpu9x50_pwr_t pwr_conf)
Enable or disable compass power.
int mpu9x50_read_compass(const mpu9x50_t *dev, mpu9x50_results_t *output)
Read magnetic field values from the given MPU9X50 device, returned in mikroT.
int mpu9x50_set_sample_rate(mpu9x50_t *dev, uint16_t rate)
Set the rate at which the gyroscope and accelerometer data is sampled.
mpu9x50_pwr_t
Power enum values.
mpu9x50_comp_addr_t
Possible compass addresses (wiring specific)
int mpu9x50_read_accel(const mpu9x50_t *dev, mpu9x50_results_t *output)
Read acceleration values from the given MPU9X50 device, returned in mG.
mpu9x50_hw_addr_t
Possible MPU-9X50 hardware addresses (wiring specific)
int mpu9x50_set_gyro_power(mpu9x50_t *dev, mpu9x50_pwr_t pwr_conf)
Enable or disable gyroscope power.
mpu9x50_accel_ranges_t
Possible full scale ranges for the accelerometer.
int mpu9x50_set_compass_sample_rate(mpu9x50_t *dev, uint8_t rate)
Set the rate at which the compass data is sampled.
int mpu9x50_set_accel_fsr(mpu9x50_t *dev, mpu9x50_accel_ranges_t fsr)
Set the full-scale range for raw accelerometer data.
int mpu9x50_init(mpu9x50_t *dev, const mpu9x50_params_t *params)
Initialize the given MPU9X50 device.
int mpu9x50_set_gyro_fsr(mpu9x50_t *dev, mpu9x50_gyro_ranges_t fsr)
Set the full-scale range for raw gyroscope data.
int mpu9x50_set_accel_power(mpu9x50_t *dev, mpu9x50_pwr_t pwr_conf)
Enable or disable accelerometer power.
mpu9x50_gyro_ranges_t
Possible full scale ranges for the gyroscope.
int mpu9x50_read_gyro(const mpu9x50_t *dev, mpu9x50_results_t *output)
Read angular speed values from the given MPU9X50 device, returned in dps.
uint_fast8_t i2c_t
Default i2c_t type definition.
Low-level I2C peripheral driver interface definition.
Device initialization parameters.
i2c_t i2c
I2C device which is used.
uint8_t comp_addr
Address of the MPU-9X50s compass.
uint16_t sample_rate
Sample rate.
uint8_t addr
Hardware address of the MPU-9X50.
MPU-9X50 result vector struct.
int16_t z_axis
Z-Axis measurement result.
int16_t x_axis
X-Axis measurement result.
int16_t y_axis
Y-Axis measurement result.
Configuration struct for the MPU-9X50 sensor.
uint8_t compass_x_adj
Compass X-Axis sensitivity adjustment value.
mpu9x50_accel_ranges_t accel_fsr
Configured accel full-scale range.
uint8_t compass_z_adj
Compass Z-Axis sensitivity adjustment value.
uint16_t sample_rate
Configured sample rate for accel and gyro.
uint8_t compass_y_adj
Compass Y-Axis sensitivity adjustment value.
mpu9x50_gyro_ranges_t gyro_fsr
Configured gyro full-scale range.
mpu9x50_pwr_t accel_pwr
Accel power status (on/off)
mpu9x50_pwr_t compass_pwr
Compass power status (on/off)
mpu9x50_pwr_t gyro_pwr
Gyro power status (on/off)
uint8_t compass_sample_rate
Configured compass sample rate.
Device descriptor for the MPU9X50 sensor.
mpu9x50_params_t params
Device initialization parameters.
mpu9x50_status_t conf
Device configuration.