Rev 1834 | Rev 1839 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1834 | Rev 1837 | ||
---|---|---|---|
Line 76... | Line 76... | ||
76 | long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0; |
76 | long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0; |
77 | long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2; |
77 | long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2; |
78 | long SummeNick=0,SummeRoll=0; |
78 | long SummeNick=0,SummeRoll=0; |
79 | volatile long Mess_Integral_Hoch = 0; |
79 | volatile long Mess_Integral_Hoch = 0; |
80 | int KompassValue = 0; |
80 | int KompassValue = 0; |
81 | int KompassStartwert = 0; |
81 | int KompassSollWert = 0; |
82 | int KompassRichtung = 0; |
82 | int KompassRichtung = 0; |
83 | unsigned int KompassSignalSchlecht = 500; |
83 | unsigned int KompassSignalSchlecht = 500; |
84 | unsigned char MAX_GAS,MIN_GAS; |
84 | unsigned char MAX_GAS,MIN_GAS; |
85 | unsigned char HoehenReglerAktiv = 0; |
85 | unsigned char HoehenReglerAktiv = 0; |
86 | unsigned char TrichterFlug = 0; |
86 | unsigned char TrichterFlug = 0; |
Line 323... | Line 323... | ||
323 | Mess_IntegralRoll2 = IntegralRoll; |
323 | Mess_IntegralRoll2 = IntegralRoll; |
324 | Mess_Integral_Gier = 0; |
324 | Mess_Integral_Gier = 0; |
325 | StartLuftdruck = Luftdruck; |
325 | StartLuftdruck = Luftdruck; |
326 | VarioMeter = 0; |
326 | VarioMeter = 0; |
327 | Mess_Integral_Hoch = 0; |
327 | Mess_Integral_Hoch = 0; |
328 | KompassStartwert = KompassValue; |
328 | KompassSollWert = KompassValue; |
329 | GPS_Neutral(); |
329 | GPS_Neutral(); |
330 | beeptime = 50; |
330 | beeptime = 50; |
331 | Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L; |
331 | Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L; |
332 | Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L; |
332 | Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L; |
333 | ExternHoehenValue = 0; |
333 | ExternHoehenValue = 0; |
Line 1222... | Line 1222... | ||
1222 | { |
1222 | { |
1223 | GierGyroFehler += fehler; |
1223 | GierGyroFehler += fehler; |
1224 | if(NeueKompassRichtungMerken) |
1224 | if(NeueKompassRichtungMerken) |
1225 | { |
1225 | { |
1226 | ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR; |
1226 | ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR; |
1227 | KompassStartwert = (ErsatzKompass/GIER_GRAD_FAKTOR); |
1227 | KompassSollWert = (ErsatzKompass/GIER_GRAD_FAKTOR); |
1228 | NeueKompassRichtungMerken = 0; |
1228 | NeueKompassRichtungMerken = 0; |
1229 | } |
1229 | } |
1230 | } |
1230 | } |
1231 | ErsatzKompass += (fehler * 16) / korrektur; |
1231 | ErsatzKompass += (fehler * 16) / korrektur; |
1232 | w = (w * Parameter_KompassWirkung) / 32; // auf die Wirkung normieren |
1232 | w = (w * Parameter_KompassWirkung) / 32; // auf die Wirkung normieren |
Line 1234... | Line 1234... | ||
1234 | if(w >= 0) |
1234 | if(w >= 0) |
1235 | { |
1235 | { |
1236 | if(!KompassSignalSchlecht) |
1236 | if(!KompassSignalSchlecht) |
1237 | { |
1237 | { |
1238 | v = 64 + ((MaxStickNick + MaxStickRoll)) / 8; |
1238 | v = 64 + ((MaxStickNick + MaxStickRoll)) / 8; |
1239 | r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassStartwert) % 360) - 180; |
1239 | r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassSollWert) % 360) - 180; |
1240 | v = (r * w) / v; // nach Kompass ausrichten |
1240 | v = (r * w) / v; // nach Kompass ausrichten |
1241 | w = 3 * Parameter_KompassWirkung; |
1241 | w = 3 * Parameter_KompassWirkung; |
1242 | if(v > w) v = w; // Begrenzen |
1242 | if(v > w) v = w; // Begrenzen |
1243 | else |
1243 | else |
1244 | if(v < -w) v = -w; |
1244 | if(v < -w) v = -w; |