Rev 882 | Rev 921 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 882 | Rev 918 | ||
---|---|---|---|
Line 324... | Line 324... | ||
324 | //############################################################################ |
324 | //############################################################################ |
325 | // Messwerte beim Ermitteln der Nullage |
325 | // Messwerte beim Ermitteln der Nullage |
326 | void CalibrierMittelwert(void) |
326 | void CalibrierMittelwert(void) |
327 | //############################################################################ |
327 | //############################################################################ |
328 | { |
328 | { |
- | 329 | if(PlatinenVersion >= 12) SucheGyroOffset(); |
|
329 | // ADC auschalten, damit die Werte sich nicht während der Berechnung ändern |
330 | // ADC auschalten, damit die Werte sich nicht während der Berechnung ändern |
330 | ANALOG_OFF; |
331 | ANALOG_OFF; |
331 | MesswertNick = AdWertNick; |
332 | MesswertNick = AdWertNick; |
332 | MesswertRoll = AdWertRoll; |
333 | MesswertRoll = AdWertRoll; |
333 | MesswertGier = AdWertGier; |
334 | MesswertGier = AdWertGier; |
Line 489... | Line 490... | ||
489 | } |
490 | } |
490 | if((modell_fliegt < 256)) |
491 | if((modell_fliegt < 256)) |
491 | { |
492 | { |
492 | SummeNick = 0; |
493 | SummeNick = 0; |
493 | SummeRoll = 0; |
494 | SummeRoll = 0; |
- | 495 | if(modell_fliegt == 250) |
|
- | 496 | { |
|
494 | if(modell_fliegt == 250) NeueKompassRichtungMerken = 1; |
497 | NeueKompassRichtungMerken = 1; |
- | 498 | sollGier = 0; |
|
- | 499 | Mess_Integral_Gier = 0; |
|
- | 500 | Mess_Integral_Gier2 = 0; |
|
- | 501 | } |
|
495 | } |
502 | } |
496 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
503 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
497 | { |
504 | { |
498 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
505 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
499 | // auf Nullwerte kalibrieren |
506 | // auf Nullwerte kalibrieren |
Line 710... | Line 717... | ||
710 | 717 | ||
711 | if(Looping_Links || Looping_Rechts) Looping_Roll = 1; else Looping_Roll = 0; |
718 | if(Looping_Links || Looping_Rechts) Looping_Roll = 1; else Looping_Roll = 0; |
712 | if(Looping_Oben || Looping_Unten) {Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0; |
719 | if(Looping_Oben || Looping_Unten) {Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0; |
Line 713... | Line -... | ||
713 | } // Ende neue Funken-Werte |
- | |
714 | 720 | } // Ende neue Funken-Werte |
|
715 | if(Looping_Roll) beeptime = 100; |
721 | |
716 | if(Looping_Roll || Looping_Nick) |
722 | if(Looping_Roll || Looping_Nick) |
717 | { |
723 | { |
Line 1208... | Line 1214... | ||
1208 | // Roll-Achse |
1214 | // Roll-Achse |
1209 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1215 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1210 | DiffRoll = MesswertRoll - StickRoll; // Differenz bestimmen |
1216 | DiffRoll = MesswertRoll - StickRoll; // Differenz bestimmen |
1211 | if(IntegralFaktor) SummeRoll += IntegralRoll * IntegralFaktor - StickRoll;// I-Anteil bei Winkelregelung |
1217 | if(IntegralFaktor) SummeRoll += IntegralRoll * IntegralFaktor - StickRoll;// I-Anteil bei Winkelregelung |
1212 | else SummeRoll += DiffRoll; // I-Anteil bei HH |
1218 | else SummeRoll += DiffRoll; // I-Anteil bei HH |
1213 | if(SummeRoll > 16000) SummeRoll = 16000; |
1219 | if(SummeRoll > (STICK_GAIN * 16000L)) SummeRoll = (STICK_GAIN * 16000L); |
1214 | if(SummeRoll < -16000) SummeRoll = -16000; |
1220 | if(SummeRoll < -(16000L * STICK_GAIN)) SummeRoll = -(16000L * STICK_GAIN); |
1215 | pd_ergebnis = DiffRoll + Ki * SummeRoll; // PI-Regler für Roll |
1221 | pd_ergebnis = DiffRoll + Ki * SummeRoll; // PI-Regler für Roll |
1216 | tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64; |
1222 | tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64; |
1217 | if(pd_ergebnis > tmp_int) pd_ergebnis = tmp_int; |
1223 | if(pd_ergebnis > tmp_int) pd_ergebnis = tmp_int; |
1218 | if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int; |
1224 | if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int; |
1219 | // Motor Links |
1225 | // Motor Links |