26,6 → 26,39 |
#define FC_ERROR1_RES2 0x40 |
#define FC_ERROR1_RES3 0x80 |
|
typedef struct { |
uint8_t gyroQuadrant; |
uint8_t accQuadrant; |
uint8_t imuReversedFlags; |
|
uint8_t gyroPIDFilterConstant; |
uint8_t gyroDWindowLength; |
uint8_t gyroDFilterConstant; |
uint8_t accFilterConstant; |
|
uint8_t zerothOrderCorrection; |
uint8_t rateTolerance; |
|
uint8_t gyroActivityDamping; |
uint8_t driftCompDivider; // 1/k (Koppel_ACC_Wirkung) |
uint8_t driftCompLimit; // limit for gyrodrift compensation |
} IMUConfig_t; |
|
extern IMUConfig_t IMUConfig; |
|
typedef struct { |
uint8_t P; |
uint8_t I; |
uint8_t D; |
} PID_t; |
|
typedef struct { |
uint8_t P; |
uint8_t I; |
uint8_t D; |
uint8_t iMax; |
} PIDIM_t; |
|
typedef enum { |
FLIGHT_MODE_NONE, |
FLIGHT_MODE_MANUAL, |
49,9 → 82,8 |
extern VersionInfo_t versionInfo; |
|
typedef struct { |
/*PMM*/uint8_t gyroPitchD; |
/* P */uint8_t gyroRollD;\ |
/* P */uint8_t gyroYawD; |
// IMU stuff: |
PID_t gyroPID[3]; |
|
// Control |
/* P */uint8_t externalControl; |
108,45 → 140,13 |
uint8_t timing; |
} output_flash_t; |
|
typedef struct { |
uint8_t gyroQuadrant; |
uint8_t accQuadrant; |
uint8_t imuReversedFlags; |
|
uint8_t gyroPIDFilterConstant; |
uint8_t gyroDWindowLength; |
uint8_t gyroDFilterConstant; |
uint8_t accFilterConstant; |
|
uint8_t zerothOrderCorrection; |
uint8_t rateTolerance; |
|
uint8_t gyroActivityDamping; |
uint8_t driftCompDivider; // 1/k (Koppel_ACC_Wirkung) |
uint8_t driftCompLimit; // limit for gyrodrift compensation |
} IMUConfig_t; |
|
extern IMUConfig_t IMUConfig; |
|
typedef struct { |
uint8_t P; |
uint8_t I; |
uint8_t D; |
} PID_t; |
|
// values above 250 representing poti1 to poti4 |
typedef struct { |
// Global bitflags |
uint8_t bitConfig; // see upper defines for bitcoding |
|
// uint8_t axisCoupling1; // Value: 0-250 Faktor, mit dem Yaw die Achsen Roll und Nick koppelt (NickRollMitkopplung) |
// uint8_t axisCoupling2; // Value: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
// uint8_t axisCouplingYawCorrection;// Value: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
|
uint8_t levelCorrection[2]; |
|
// Control |
PID_t gyroPID[3]; |
PIDIM_t gyroPID[3]; |
|
uint8_t stickIElevator; |
uint8_t stickIAilerons; |
182,14 → 182,8 |
extern ParamSet_t staticParams; |
|
// bit mask for staticParams.bitConfig |
#define CFG_SIMPLE_HEIGHT_CONTROL (1<<0) |
#define CFG_SIMPLE_HC_HOLD_SWITCH (1<<1) |
#define CFG_HEADING_HOLD (1<<2) |
#define CFG_COMPASS_ENABLED (1<<3) |
#define CFG_UNUSED (1<<4) |
#define CFG_NAVI_ENABLED (1<<5) |
#define CFG_AXIS_COUPLING_ENABLED (1<<6) |
#define CFG_GYRO_SATURATION_PREVENTION (1<<7) |
#define CFG_GYRO_SATURATION_PREVENTION (1<<0) |
#define CFG_USE_AIRSPEED_PID (1<<1) |
|
#define IMU_REVERSE_GYRO_PR (1<<0) |
#define IMU_REVERSE_GYRO_YAW (1<<1) |