Rev 528 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 528 | Rev 529 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | Flight Control |
2 | Flight Control |
3 | #######################################################################################*/ |
3 | #######################################################################################*/ |
Line 4... | Line 4... | ||
4 | 4 | ||
5 | #ifndef _FC_H |
5 | #ifndef _FC_H |
- | 6 | #define _FC_H |
|
6 | #define _FC_H |
7 | |
7 | extern volatile unsigned int I2CTimeout; |
8 | extern volatile unsigned int I2CTimeout; |
8 | //Salvo 1.9.2007 Neutralwerte fuer ACC Sensor fest einstellen. Startausrichtung ist dann egal ! ***** |
9 | //Salvo 9.12.2007 Neutralwerte fuer ACC Sensor nur noch infohalber drin |
9 | // Laut Datenblatt sind die Werte ueber Zeit und Temperatur sehr stabil. |
- | |
10 | #define ACC_NEUTRAL_FIXED 1 // wenn eins werden die Neutralwerte fuer den ACC Sensor festeingestellt |
10 | // Laut Datenblatt sind die Werte ueber Zeit und Temperatur sehr stabil. |
11 | #define ACC_NICK_NEUTRAL 518 // ADC Wandler Wert in Neutrallage (0g): Vom individuellen Sensor abhaengig |
11 | #define ACC_NICK_NEUTRAL 518 // ADC Wandler Wert in Neutrallage (0g): Vom individuellen Sensor abhaengig |
Line 12... | Line 12... | ||
12 | #define ACC_ROLL_NEUTRAL 516 // ADC Wandler wert in Neutrallage (0g) |
12 | #define ACC_ROLL_NEUTRAL 516 // ADC Wandler wert in Neutrallage (0g) |
13 | 13 | ||
14 | #define ACC_WAAGRECHT_LIMIT 100 // Nick und Roll kleiner als dieser Wert gelten als Kriterium fuer waagrechte Lage |
14 | #define ACC_WAAGRECHT_LIMIT 100 // Nick und Roll kleiner als dieser Wert gelten als Kriterium fuer waagrechte Lage |
15 | // Salvo End |
15 | // Salvo End |
16 | //Salvo 2.9.2007 Ersatzkompass: Gyroincrements/Grad als Defaultwert ***** |
16 | //Salvo 2.9.2007 Ersatzkompass: Gyroincrements/Grad als Defaultwert ***** |
17 | // Laut Datenblatt sind die Werte ueber Zeit und Temperatur sehr stabil. |
17 | // Laut Datenblatt sind die Werte ueber Zeit und Temperatur sehr stabil. |
Line 18... | Line -... | ||
18 | #define GYROKOMP_INC_GRAD_DEFAULT 1250 // Gyroincrements/Grad als Defaultwert |
- | |
19 | // Salvo End |
- | |
20 | - | ||
21 | - | ||
22 | extern unsigned char Parameter_UserParam1 ; |
- | |
23 | extern unsigned char Parameter_UserParam2 ; |
- | |
24 | extern unsigned char Parameter_UserParam3 ; |
18 | #define GYROKOMP_INC_GRAD_DEFAULT 1250 // Gyroincrements/Grad als Defaultwert |
25 | // Salvo End |
19 | // Salvo End |
26 | extern volatile unsigned char Timeout; |
20 | |
27 | extern unsigned char Sekunde,Minute; |
21 | extern unsigned char Sekunde,Minute; |
28 | extern volatile long IntegralNick,IntegralNick2; |
22 | extern volatile long IntegralNick,IntegralNick2; |
- | 23 | extern volatile long IntegralRoll,IntegralRoll2; |
|
29 | extern volatile long IntegralRoll,IntegralRoll2; |
24 | extern volatile long Mess_IntegralNick,Mess_IntegralNick2; |
30 | extern volatile long Mess_IntegralNick,Mess_IntegralNick2; |
25 | extern volatile long Mess_IntegralRoll,Mess_IntegralRoll2; |
31 | extern volatile long Mess_IntegralRoll,Mess_IntegralRoll2; |
26 | extern volatile long IntegralAccNick,IntegralAccRoll; |
32 | extern volatile long Mess_Integral_Hoch; |
27 | extern volatile long Mess_Integral_Hoch; |
33 | extern volatile long Integral_Gier,Mess_Integral_Gier,Mess_Integral_Gier2; |
28 | extern volatile long Integral_Gier,Mess_Integral_Gier,Mess_Integral_Gier2; |
Line 38... | Line 33... | ||
38 | extern int SollHoehe; |
33 | extern int SollHoehe; |
39 | extern volatile int MesswertNick,MesswertRoll,MesswertGier; |
34 | extern volatile int MesswertNick,MesswertRoll,MesswertGier; |
40 | extern volatile int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll; |
35 | extern volatile int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll; |
41 | extern volatile int NeutralAccX, NeutralAccY,Mittelwert_AccHoch; |
36 | extern volatile int NeutralAccX, NeutralAccY,Mittelwert_AccHoch; |
42 | extern volatile float NeutralAccZ; |
37 | extern volatile float NeutralAccZ; |
- | 38 | extern long Umschlag180Nick, Umschlag180Roll; |
|
- | 39 | extern signed int ExternStickNick,ExternStickRoll,ExternStickGier; |
|
- | 40 | extern unsigned char Parameter_UserParam1,Parameter_UserParam2,Parameter_UserParam3,Parameter_UserParam4,Parameter_UserParam5,Parameter_UserParam6,Parameter_UserParam7,Parameter_UserParam8; |
|
- | 41 | ||
Line 43... | Line 42... | ||
43 | 42 | ||
44 | //Salvo 2.9.2007 Ersatzkompass |
43 | //Salvo 2.9.2007 Ersatzkompass |
45 | extern volatile long GyroKomp_Int; |
44 | extern volatile long GyroKomp_Int; |
46 | extern volatile int GyroKomp_Inc_Grad; |
45 | extern volatile int GyroKomp_Inc_Grad; |
Line 50... | Line 49... | ||
50 | void MotorRegler(void); |
49 | void MotorRegler(void); |
51 | void SendMotorData(void); |
50 | void SendMotorData(void); |
52 | void CalibrierMittelwert(void); |
51 | void CalibrierMittelwert(void); |
53 | void Mittelwert(void); |
52 | void Mittelwert(void); |
54 | void SetNeutral(void); |
53 | void SetNeutral(void); |
- | 54 | void Piep(unsigned char Anzahl); |
|
- | 55 | extern void DefaultKonstanten(void); |
|
- | 56 | void DefaultKonstanten1(void); |
|
- | 57 | void DefaultKonstanten2(void); |
|
Line 55... | Line 58... | ||
55 | 58 | ||
56 | unsigned char h,m,s; |
59 | extern unsigned char h,m,s; |
57 | volatile unsigned char Timeout ; |
60 | extern volatile unsigned char Timeout ; |
58 | unsigned char CosinusNickWinkel, CosinusRollWinkel; |
61 | extern unsigned char CosinusNickWinkel, CosinusRollWinkel; |
59 | volatile long IntegralNick,IntegralNick2; |
62 | extern volatile long IntegralNick,IntegralNick2; |
60 | volatile long IntegralRoll,IntegralRoll2; |
63 | extern volatile long IntegralRoll,IntegralRoll2; |
61 | volatile long Integral_Gier; |
64 | extern volatile long Integral_Gier; |
62 | volatile long Mess_IntegralNick,Mess_IntegralNick2; |
65 | extern volatile long Mess_IntegralNick,Mess_IntegralNick2; |
63 | volatile long Mess_IntegralRoll,Mess_IntegralRoll2; |
66 | extern volatile long Mess_IntegralRoll,Mess_IntegralRoll2; |
64 | volatile long Mess_Integral_Gier; |
67 | extern volatile long Mess_Integral_Gier; |
65 | volatile int DiffNick,DiffRoll; |
68 | extern volatile int DiffNick,DiffRoll; |
66 | extern int Poti1, Poti2, Poti3, Poti4; |
69 | extern int Poti1, Poti2, Poti3, Poti4; |
67 | volatile unsigned char Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links, Count; |
70 | extern volatile unsigned char Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links, Count; |
68 | unsigned char MotorWert[5]; |
71 | extern unsigned char MotorWert[5]; |
69 | volatile unsigned char SenderOkay; |
72 | extern volatile unsigned char SenderOkay; |
70 | int StickNick,StickRoll,StickGier; |
73 | extern int StickNick,StickRoll,StickGier; |
- | 74 | extern char MotorenEin; |
|
71 | char MotorenEin; |
75 | extern void DefaultKonstanten1(void); |
Line 72... | Line 76... | ||
72 | extern void DefaultKonstanten(void); |
76 | extern void DefaultKonstanten2(void); |
73 | 77 | ||
74 | #define STRUCT_PARAM_LAENGE 58 |
78 | #define STRUCT_PARAM_LAENGE 71 |
75 | struct mk_param_struct |
79 | struct mk_param_struct |
76 | { |
80 | { |
77 | unsigned char Kanalbelegung[8]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3 |
81 | unsigned char Kanalbelegung[8]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3 |
Line 105... | Line 109... | ||
105 | unsigned char ServoNickMin; // Wert : 0-250 // Anschlag |
109 | unsigned char ServoNickMin; // Wert : 0-250 // Anschlag |
106 | unsigned char ServoNickMax; // Wert : 0-250 // Anschlag |
110 | unsigned char ServoNickMax; // Wert : 0-250 // Anschlag |
107 | unsigned char ServoNickRefresh; // |
111 | unsigned char ServoNickRefresh; // |
108 | unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping |
112 | unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping |
109 | unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag |
113 | unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag |
- | 114 | unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag |
|
- | 115 | unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung) |
|
- | 116 | unsigned char AchsGegenKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick Gegenkoppelt (NickRollGegenkopplung) |
|
- | 117 | unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt |
|
- | 118 | unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt |
|
- | 119 | unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung) |
|
- | 120 | unsigned char Driftkomp; |
|
- | 121 | unsigned char DynamicStability; |
|
- | 122 | unsigned char UserParam5; // Wert : 0-250 |
|
- | 123 | unsigned char UserParam6; // Wert : 0-250 |
|
- | 124 | unsigned char UserParam7; // Wert : 0-250 |
|
- | 125 | unsigned char UserParam8; // Wert : 0-250 |
|
- | 126 | ||
110 | //------------------------------------------------ |
127 | //------------------------------------------------ |
111 | unsigned char LoopConfig; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
128 | unsigned char LoopConfig; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
112 | unsigned char ServoNickCompInvert; // Wert : 0-250 0 oder 1 // WICHTIG!!! am Ende lassen |
129 | unsigned char ServoNickCompInvert; // Wert : 0-250 0 oder 1 // WICHTIG!!! am Ende lassen |
113 | unsigned char Reserved[4]; |
130 | unsigned char Reserved[4]; |
114 | char Name[12]; |
131 | char Name[12]; |
115 | }; |
132 | }; |
Line -... | Line 133... | ||
- | 133 | ||
116 | 134 | ||
117 | /* |
135 | /* |
118 | unsigned char ServoNickMax; // Wert : 0-250 |
136 | unsigned char ServoNickMax; // Wert : 0-250 |
119 | unsigned char ServoNickRefresh; // |
137 | unsigned char ServoNickRefresh; // |
120 | unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping |
138 | unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping |
Line 135... | Line 153... | ||
135 | extern unsigned char Parameter_KompassWirkung; |
153 | extern unsigned char Parameter_KompassWirkung; |
136 | extern unsigned char Parameter_Gyro_P; |
154 | extern unsigned char Parameter_Gyro_P; |
137 | extern unsigned char Parameter_Gyro_I; |
155 | extern unsigned char Parameter_Gyro_I; |
138 | extern unsigned char Parameter_Gier_P; |
156 | extern unsigned char Parameter_Gier_P; |
139 | extern unsigned char Parameter_ServoNickControl; |
157 | extern unsigned char Parameter_ServoNickControl; |
- | 158 | extern unsigned char Parameter_AchsKopplung1; |
|
- | 159 | extern unsigned char Parameter_AchsGegenKopplung1; |
|
- | 160 | ||
Line 140... | Line 161... | ||
140 | 161 |