2026-07-20 17:04:48 +08:00
|
|
|
#ifndef _IMU_H_
|
2026-04-23 14:02:03 +08:00
|
|
|
#define _IMU_H_
|
|
|
|
|
#include <math.h>
|
|
|
|
|
|
|
|
|
|
#define PI 3.14159265358979323846f
|
2026-07-20 17:04:48 +08:00
|
|
|
#define RAD_TO_DEG 57.2957795 // 弧度到度的转换系数
|
|
|
|
|
#define DEG_TO_RAD 0.0174533 // 度到弧度的转换系数
|
2026-04-23 14:02:03 +08:00
|
|
|
|
2026-07-20 17:04:48 +08:00
|
|
|
// 定义欧拉角结构体
|
2026-04-23 14:02:03 +08:00
|
|
|
typedef struct {
|
2026-07-20 17:04:48 +08:00
|
|
|
volatile float roll, pitch, yaw;//弧度
|
2026-04-23 14:02:03 +08:00
|
|
|
}Rad_T, *RadDp;
|
|
|
|
|
typedef struct {
|
2026-07-20 17:04:48 +08:00
|
|
|
volatile float roll, pitch, yaw;//角度
|
2026-04-23 14:02:03 +08:00
|
|
|
}Deg_T, *DegDp;
|
|
|
|
|
|
|
|
|
|
#define Imu_AccFilterSize 10
|
|
|
|
|
#define Imu_MagFilterSize 20
|
|
|
|
|
#define Imu_GyroFilterSize 10
|
|
|
|
|
|
|
|
|
|
void IMU_Update(float *gy,float *acc, float *mag, RadDp Rad, DegDp Deg);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|