41 lines
963 B
C
41 lines
963 B
C
|
|
#ifndef __INERTIALSENSOR_BMI055_H__
|
|
#define __INERTIALSENSOR_BMI055_H__
|
|
|
|
#include "SPIDevice.h"
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
typedef struct InertialSensor_BMI088
|
|
{
|
|
SPI_DEV_t *dev_accel;
|
|
SPI_DEV_t *dev_gyro;
|
|
const char *name;
|
|
bool success;
|
|
|
|
uint32_t accel_error_count;
|
|
uint32_t gyro_error_count;
|
|
int temperature_counter;
|
|
|
|
float accel[3];
|
|
float gyro[3];
|
|
float temp_degc;
|
|
uint8_t accel_seq;
|
|
uint8_t gyro_seq;
|
|
|
|
uint32_t accel_count;
|
|
uint32_t gyro_count;
|
|
uint32_t accel_pps;
|
|
uint32_t gyro_pps;
|
|
|
|
bool done_accel_config;
|
|
uint32_t accel_config_count;
|
|
} InertialSensor_BMI088_t;
|
|
|
|
bool InertialSensor_BMI088_init(InertialSensor_BMI088_t *imu, const char *name, SPI_DEV_t *dev_accel, SPI_DEV_t *dev_gyro);
|
|
void InertialSensor_BMI088_update(InertialSensor_BMI088_t *imu);
|
|
void InertialSensor_BMI088_loop(InertialSensor_BMI088_t *imu);
|
|
void InertialSensor_BMI088_monitor(InertialSensor_BMI088_t *imu);
|
|
|
|
#endif /* __INERTIALSENSOR_BMI055_H__ */
|