Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2102 → Rev 2104

/branches/dongfang_FC_fixedwing/configuration.h
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)