Subversion Repositories FlightCtrl

Rev

Rev 2099 | Rev 2104 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2099 Rev 2102
Line 24... Line 24...
24
#define FC_ERROR1_MIXER         0x10
24
#define FC_ERROR1_MIXER         0x10
25
#define FC_ERROR1_RES1          0x20
25
#define FC_ERROR1_RES1          0x20
26
#define FC_ERROR1_RES2          0x40
26
#define FC_ERROR1_RES2          0x40
27
#define FC_ERROR1_RES3          0x80
27
#define FC_ERROR1_RES3          0x80
Line -... Line 28...
-
 
28
 
-
 
29
typedef enum {
-
 
30
  FLIGHT_MODE_NONE,
-
 
31
  FLIGHT_MODE_MANUAL,
-
 
32
  FLIGHT_MODE_RATE,
-
 
33
  FLIGHT_MODE_ANGLES
-
 
34
} FlightMode_t;
-
 
35
 
-
 
36
#define CONTROL_SERVO_REVERSE_ELEVATOR 1
-
 
37
#define CONTROL_SERVO_REVERSE_AILERONS 2
-
 
38
#define CONTROL_SERVO_REVERSE_RUDDER 4
28
 
39
 
29
typedef struct {
40
typedef struct {
30
    uint8_t SWMajor;
41
    uint8_t SWMajor;
31
    uint8_t SWMinor;
42
    uint8_t SWMinor;
32
    uint8_t protoMajor;
43
    uint8_t protoMajor;
Line 37... Line 48...
37
 
48
 
Line 38... Line 49...
38
extern VersionInfo_t versionInfo;
49
extern VersionInfo_t versionInfo;
39
 
50
 
40
typedef struct {
51
typedef struct {
41
  /*PMM*/uint8_t gyroPitchD;
52
  /*PMM*/uint8_t gyroPitchD;
Line 42... Line 53...
42
  /* P */uint8_t gyroRollD;
53
  /* P */uint8_t gyroRollD;\
43
  /* P */uint8_t gyroYawD;
54
  /* P */uint8_t gyroYawD;
Line 44... Line -...
44
 
-
 
45
  // Control
-
 
46
  /* P */uint8_t externalControl;
-
 
47
 
-
 
48
  // Height control
-
 
49
  /*PMM*/uint8_t heightP;
-
 
50
  /* P */uint8_t heightI;
55
 
51
  /*PMM*/uint8_t heightD;
56
  // Control
52
  /* P */uint8_t heightSetting;
57
  /* P */uint8_t externalControl;
Line 53... Line 58...
53
 
58
 
Line 121... Line 126...
121
  uint8_t driftCompLimit;   // limit for gyrodrift compensation
126
  uint8_t driftCompLimit;   // limit for gyrodrift compensation
122
} IMUConfig_t;
127
} IMUConfig_t;
Line 123... Line 128...
123
 
128
 
Line -... Line 129...
-
 
129
extern IMUConfig_t IMUConfig;
-
 
130
 
-
 
131
typedef struct {
-
 
132
        uint8_t P;
-
 
133
        uint8_t I;
-
 
134
        uint8_t D;
124
extern IMUConfig_t IMUConfig;
135
} PID_t;
125
 
136
 
126
// values above 250 representing poti1 to poti4
137
// values above 250 representing poti1 to poti4
127
typedef struct {
138
typedef struct {
Line 133... Line 144...
133
  // uint8_t axisCouplingYawCorrection;// Value: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
144
  // uint8_t axisCouplingYawCorrection;// Value: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
Line 134... Line 145...
134
 
145
 
Line 135... Line 146...
135
  uint8_t levelCorrection[2];
146
  uint8_t levelCorrection[2];
136
 
-
 
137
  // Control
-
 
138
  uint8_t gyroPitchP;
147
 
139
  uint8_t gyroPitchI;
-
 
140
  uint8_t gyroPitchD;
-
 
141
 
-
 
142
  uint8_t gyroRollP;
-
 
143
  uint8_t gyroRollI;
-
 
144
  uint8_t gyroRollD;
-
 
145
 
-
 
146
  uint8_t gyroYawP;
-
 
Line 147... Line 148...
147
  uint8_t gyroYawI;
148
  // Control
148
  uint8_t gyroYawD;
149
  PID_t gyroPID[3];
149
 
150
 
Line 158... Line 159...
158
  uint8_t batteryVoltageWarning;
159
  uint8_t batteryVoltageWarning;
159
  uint8_t emergencyThrottle;
160
  uint8_t emergencyThrottle;
160
  uint8_t emergencyFlightDuration;
161
  uint8_t emergencyFlightDuration;
Line 161... Line 162...
161
 
162
 
-
 
163
  // Servos
-
 
164
  uint8_t controlServosReverse;
162
  // Servos
165
 
163
  uint8_t servoCount;
166
  uint8_t servoCount;
164
  uint8_t servoManualMaxSpeed;
167
  uint8_t servoManualMaxSpeed;
Line 165... Line 168...
165
  servo_t servoConfigurations[2]; // [PITCH, ROLL]
168
  servo_t servoConfigurations[2]; // [PITCH, ROLL]
Line 176... Line 179...
176
  char name[12];
179
  char name[12];
177
} ParamSet_t;
180
} ParamSet_t;
Line 178... Line 181...
178
 
181
 
Line 179... Line -...
179
extern ParamSet_t staticParams;
-
 
180
 
-
 
181
// MKFlags
-
 
182
#define MKFLAG_MOTOR_RUN    (1<<0)
-
 
183
//#define MKFLAG_FLY            (1<<1)
-
 
184
#define MKFLAG_CALIBRATE    (1<<2)
-
 
185
#define MKFLAG_START        (1<<3)
-
 
186
#define MKFLAG_EMERGENCY_FLIGHT (1<<4)
-
 
187
#define MKFLAG_LOWBAT       (1<<5)
-
 
188
#define MKFLAG_RESERVE2     (1<<6)
-
 
189
#define MKFLAG_RESERVE3     (1<<7)
182
extern ParamSet_t staticParams;
190
 
183
 
191
// bit mask for staticParams.bitConfig
184
// bit mask for staticParams.bitConfig
192
#define CFG_SIMPLE_HEIGHT_CONTROL       (1<<0)
185
#define CFG_SIMPLE_HEIGHT_CONTROL       (1<<0)
193
#define CFG_SIMPLE_HC_HOLD_SWITCH       (1<<1)
186
#define CFG_SIMPLE_HC_HOLD_SWITCH       (1<<1)
Line 221... Line 214...
221
#define MIX_ROLL    2
214
#define MIX_ROLL    2
222
#define MIX_YAW     3
215
#define MIX_YAW     3
Line 223... Line 216...
223
 
216
 
Line 224... Line -...
224
#define VARIABLE_COUNT 8
-
 
225
 
-
 
226
extern volatile uint8_t MKFlags;
217
#define VARIABLE_COUNT 8
227
extern uint8_t requiredMotors;
218
 
228
extern int16_t variables[VARIABLE_COUNT]; // The "Poti"s.
219
extern int16_t variables[VARIABLE_COUNT]; // The "Poti"s.
Line 229... Line 220...
229
extern uint8_t boardRelease;
220
extern uint8_t boardRelease;
230
extern uint8_t CPUType;
221
extern uint8_t CPUType;
Line 231... Line 222...
231
 
222
 
232
extern volatile uint8_t MKFlags;
223
extern volatile uint8_t isMotorRunning;
233
extern uint16_t isFlying;
224
extern FlightMode_t currentFlightMode;
234
 
-
 
Line 235... Line 225...
235
void IMUConfig_default(void);
225
 
236
void channelMap_default(void);
-
 
237
void paramSet_default(uint8_t setnumber);
226
void IMUConfig_default(void);
Line 238... Line 227...
238
void mixerMatrix_default(void);
227
void channelMap_default(void);
239
 
228
void paramSet_default(uint8_t setnumber);