HardwareDriver/mpu6050/m451/data.h

152 lines
2.4 KiB
C
Raw Normal View History

2019-04-04 16:11:03 +00:00
#ifndef _ALL_USER_DATA_H_
#define _ALL_USER_DATA_H_
#define SUCCESS 0
#define FAIL -1
#define FAILED -1
typedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef signed long long int64_t;
/* exact-width unsigned integer types */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
#define NULL 0
extern volatile uint32_t SysTick_count;
typedef struct{
int16_t accX;
int16_t accY;
int16_t accZ;
int16_t gyroX;
int16_t gyroY;
int16_t gyroZ;
2019-04-06 04:14:25 +00:00
int16_t magX;
int16_t magY;
int16_t magZ;
2019-04-04 16:11:03 +00:00
}_st_Mpu;
2019-04-06 04:14:25 +00:00
typedef struct {
float accX;
float accY;
float accZ;
float gyroX;
float gyroY;
float gyroZ;
float magX;
float magY;
float magZ;
}_st_Mpu_Angle;
struct _1_ekf_filter
{
float LastP;
float Now_P;
float out;
float Kg;
float Q;
float R;
};
//void ekf_1(struct EKF *ekf,void *input); //一维卡尔曼
extern void kalman_1(struct _1_ekf_filter *ekf,float input); //一维卡尔曼
2019-04-04 16:11:03 +00:00
typedef struct{
int16_t magX;
int16_t magY;
int16_t magZ;
}_st_Mag;
typedef struct{
float rate;
float height;
}High;
typedef struct{
float roll;
float pitch;
float yaw;
}_st_AngE;
typedef struct
{
uint16_t roll;
uint16_t pitch;
uint16_t thr;
uint16_t yaw;
uint16_t AUX1;
uint16_t AUX2;
uint16_t AUX3;
uint16_t AUX4;
}_st_Remote;
typedef volatile struct
{
float desired; //< set point
float offset; //
float prevError; //< previous error
float integ; //< integral
float kp; //< proportional gain
float ki; //< integral gain
float kd; //< derivative gain
float IntegLimitHigh; //< integral limit
float IntegLimitLow;
float measured;
float out;
float OutLimitHigh;
float OutLimitLow;
}PidObject;
typedef volatile struct
{
uint8_t unlock;
}_st_ALL_flag;
extern _st_Remote Remote;
extern _st_Mpu MPU6050;
2019-04-06 04:14:25 +00:00
extern _st_Mpu MPU6050UnFiltered;
extern _st_Mpu_Angle MPU6050Angle;
extern _st_Mag AK8975; //保留需外接磁力<E7A381><E58A9B>?
2019-04-04 16:11:03 +00:00
extern _st_AngE Angle;
extern _st_ALL_flag ALL_flag;
extern PidObject pidRateX;
extern PidObject pidRateY;
extern PidObject pidRateZ;
extern PidObject pidPitch;
extern PidObject pidRoll;
extern PidObject pidYaw;
extern PidObject pidHeightRate;
extern PidObject pidHeightHigh;
2019-04-06 04:14:25 +00:00
extern int i2c0Lock;
extern void I2C0_LCK ();
extern void I2C0_UNLOCK();
2019-04-04 16:11:03 +00:00
#endif