37 #ifndef IMU_BMI088_GYRO_ODR
38 #define IMU_BMI088_GYRO_ODR BMI088_GYRO_ODR_1000_BW_116
42 #ifndef IMU_BMI088_ACCEL_ODR
43 #define IMU_BMI088_ACCEL_ODR BMI088_ACCEL_ODR_1600
47 #ifndef IMU_BMI088_ACCEL_BW
48 #define IMU_BMI088_ACCEL_BW BMI088_ACCEL_BW_OSR4
52 #ifndef IMU_BMI088_GYRO_I2C_ADDR
53 #define IMU_BMI088_GYRO_I2C_ADDR BMI088_GYRO_ADDR
57 #ifndef IMU_BMI088_ACCEL_I2C_ADDR
58 #define IMU_BMI088_ACCEL_I2C_ADDR BMI088_ACCEL_ADDR
63 #ifndef IMU_BMI088_CHAN_X
64 #define IMU_BMI088_CHAN_X 0
67 #ifndef IMU_BMI088_CHAN_Y
68 #define IMU_BMI088_CHAN_Y 1
71 #ifndef IMU_BMI088_CHAN_Z
72 #define IMU_BMI088_CHAN_Z 2
76 #ifndef IMU_BMI088_X_SIGN
77 #define IMU_BMI088_X_SIGN 1
80 #ifndef IMU_BMI088_Y_SIGN
81 #define IMU_BMI088_Y_SIGN 1
84 #ifndef IMU_BMI088_Z_SIGN
85 #define IMU_BMI088_Z_SIGN 1
Main include for ABI (AirBorneInterface).
const struct Int32Vect3 BMI088_ACCEL_SENS_FRAC[4][2]
const struct Int32Rates BMI088_GYRO_SENS_FRAC[5][2]
enum Bmi088AccelODR accel_odr
output data rate
enum Bmi088AccelRanges accel_range
g Range
enum Bmi088GyroODR gyro_odr
output data rate
enum Bmi088AccelBW accel_bw
bandwidth
float accel_samplerate
samplerate in Hz from accel_odr
float gyro_samplerate
samplerate in Hz from gyro_odr
enum Bmi088GyroRanges gyro_range
deg/s Range
void bmi088_i2c_init(struct Bmi088_I2c *bmi, struct i2c_periph *i2c_p, uint8_t gyro_addr, uint8_t accel_addr)
void bmi088_i2c_event(struct Bmi088_I2c *bmi)
static void bmi088_i2c_periodic(struct Bmi088_I2c *bmi)
convenience function: read or start configuration if not already initialized
volatile bool accel_available
accel data ready flag
union Bmi088_I2c::@312 data_accel
struct Bmi088Config config
union Bmi088_I2c::@313 data_rates
volatile bool gyro_available
gyro data ready flag
uint32_t get_sys_time_usec(void)
Get the time in microseconds since startup.
Architecture independent I2C (Inter-Integrated Circuit Bus) API.
void imu_set_defaults_accel(uint8_t abi_id, const struct Int32RMat *imu_to_sensor, const struct Int32Vect3 *neutral, const struct Int32Vect3 *scale)
Set the defaults for a accel sensor WARNING: Should be called before sensor is publishing messages to...
void imu_set_defaults_gyro(uint8_t abi_id, const struct Int32RMat *imu_to_sensor, const struct Int32Rates *neutral, const struct Int32Rates *scale)
Set the defaults for a gyro sensor WARNING: Should be called before sensor is publishing messages to ...
Inertial Measurement Unit interface.
#define IMU_BMI088_ACCEL_I2C_ADDR
#define IMU_BMI088_Z_SIGN
void imu_bmi088_init(void)
#define IMU_BMI088_Y_SIGN
#define IMU_BMI088_ACCEL_BW
void imu_bmi088_event(void)
#define IMU_BMI088_X_SIGN
#define IMU_BMI088_CHAN_Y
#define IMU_BMI088_ACCEL_ODR
struct ImuBmi088 imu_bmi088
#define IMU_BMI088_GYRO_I2C_ADDR
void imu_bmi088_periodic(void)
#define IMU_BMI088_CHAN_Z
#define IMU_BMI088_CHAN_X
#define IMU_BMI088_GYRO_ODR
IMU driver for the BMI088 using I2C.
#define IMU_BMI088_GYRO_RANGE
#define IMU_BMI088_ACCEL_RANGE
Architecture independent timing functions.
int int32_t
Typedef defining 32 bit int type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.