#ifndef IMU_PROCESSING_H #define IMU_PROCESSING_H #include "imu.h" #define ACCEL_SENS_SCALE_FACTOR 8192.0f #define GYRO_SENS_SCALE_FACTOR 16.4f #define PI 3.14159265359f #define DEG2RAD PI / 180.0f typedef struct { float ax, ay, az; // g float gx, gy, gz; // dps } imu_scaled_t; void imu_processing_init(); void imu_read_scaled(imu_scaled_t* out, const uint8_t* allowed_calib); void imu_calib(imu_raw_t* imu, long gyrLim, long accZero, long accMax); void imu_calibrate(); float normalize(float value, float scale, float min, float max); long absl(long value); #endif