Rev 871 | Rev 882 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 871 | Rev 880 | ||
---|---|---|---|
Line 77... | Line 77... | ||
77 | volatile int KompassRichtung = 0; |
77 | volatile int KompassRichtung = 0; |
78 | unsigned int KompassSignalSchlecht = 500; |
78 | unsigned int KompassSignalSchlecht = 500; |
79 | unsigned char MAX_GAS,MIN_GAS; |
79 | unsigned char MAX_GAS,MIN_GAS; |
80 | unsigned char Notlandung = 0; |
80 | unsigned char Notlandung = 0; |
81 | unsigned char HoehenReglerAktiv = 0; |
81 | unsigned char HoehenReglerAktiv = 0; |
- | 82 | unsigned char TrichterFlug = 0; |
|
82 | long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L; |
83 | long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L; |
83 | long ErsatzKompass; |
84 | long ErsatzKompass; |
84 | int ErsatzKompassInGrad; // Kompasswert in Grad |
85 | int ErsatzKompassInGrad; // Kompasswert in Grad |
85 | int GierGyroFehler = 0; |
86 | int GierGyroFehler = 0; |
86 | float GyroFaktor; |
87 | float GyroFaktor; |
Line 226... | Line 227... | ||
226 | if(ErsatzKompass >= (360L * GIER_GRAD_FAKTOR)) ErsatzKompass -= 360L * GIER_GRAD_FAKTOR; // 360° Umschlag |
227 | if(ErsatzKompass >= (360L * GIER_GRAD_FAKTOR)) ErsatzKompass -= 360L * GIER_GRAD_FAKTOR; // 360° Umschlag |
227 | if(ErsatzKompass < 0) ErsatzKompass += 360L * GIER_GRAD_FAKTOR; |
228 | if(ErsatzKompass < 0) ErsatzKompass += 360L * GIER_GRAD_FAKTOR; |
228 | // Kopplungsanteil +++++++++++++++++++++++++++++++++++++ |
229 | // Kopplungsanteil +++++++++++++++++++++++++++++++++++++ |
229 | if(!Looping_Nick && !Looping_Roll && (EE_Parameter.GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV)) |
230 | if(!Looping_Nick && !Looping_Roll && (EE_Parameter.GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV)) |
230 | { |
231 | { |
231 | tmpl = Mess_IntegralNick / 4096L; |
232 | tmpl = (MesswertGier * Mess_IntegralNick) / 2048L; |
232 | tmpl *= MesswertGier; |
- | |
233 | tmpl *= Parameter_AchsKopplung1; //125 |
233 | tmpl *= Parameter_AchsKopplung1; //125 |
234 | tmpl /= 2048L; |
234 | tmpl /= 4096L; |
235 | tmpl2 = Mess_IntegralRoll / 4096L; |
235 | tmpl2 = (MesswertGier * Mess_IntegralRoll) / 2048L; |
236 | tmpl2 *= MesswertGier; |
- | |
237 | tmpl2 *= Parameter_AchsKopplung1; |
236 | tmpl2 *= Parameter_AchsKopplung1; |
238 | tmpl2 /= 2048L; |
237 | tmpl2 /= 4096L; |
- | 238 | if(labs(tmpl) > 128 || labs(tmpl2) > 128) TrichterFlug = 1; |
|
239 | } |
239 | } |
240 | else tmpl = tmpl2 = 0; |
240 | else tmpl = tmpl2 = 0; |
241 | // Roll ++++++++++++++++++++++++++++++++++++++++++++++++ |
241 | // Roll ++++++++++++++++++++++++++++++++++++++++++++++++ |
242 | MesswertRoll += tmpl; |
242 | MesswertRoll += tmpl; |
243 | MesswertRoll += (tmpl2*Parameter_AchsGegenKopplung1)/512L; //109 |
243 | MesswertRoll += (tmpl2*Parameter_AchsGegenKopplung1)/512L; //109 |
Line 791... | Line 791... | ||
791 | if(ZaehlMessungen >= ABGLEICH_ANZAHL) |
791 | if(ZaehlMessungen >= ABGLEICH_ANZAHL) |
792 | { |
792 | { |
793 | static int cnt = 0; |
793 | static int cnt = 0; |
794 | static char last_n_p,last_n_n,last_r_p,last_r_n; |
794 | static char last_n_p,last_n_n,last_r_p,last_r_n; |
795 | static long MittelIntegralNick_Alt,MittelIntegralRoll_Alt; |
795 | static long MittelIntegralNick_Alt,MittelIntegralRoll_Alt; |
796 | if(!Looping_Nick && !Looping_Roll) |
796 | if(!Looping_Nick && !Looping_Roll && !TrichterFlug) |
797 | { |
797 | { |
798 | MittelIntegralNick /= ABGLEICH_ANZAHL; |
798 | MittelIntegralNick /= ABGLEICH_ANZAHL; |
799 | MittelIntegralRoll /= ABGLEICH_ANZAHL; |
799 | MittelIntegralRoll /= ABGLEICH_ANZAHL; |
800 | IntegralAccNick = (EE_Parameter.GyroAccFaktor * IntegralAccNick) / ABGLEICH_ANZAHL; |
800 | IntegralAccNick = (EE_Parameter.GyroAccFaktor * IntegralAccNick) / ABGLEICH_ANZAHL; |
801 | IntegralAccRoll = (EE_Parameter.GyroAccFaktor * IntegralAccRoll) / ABGLEICH_ANZAHL; |
801 | IntegralAccRoll = (EE_Parameter.GyroAccFaktor * IntegralAccRoll) / ABGLEICH_ANZAHL; |
Line 937... | Line 937... | ||
937 | } |
937 | } |
938 | else |
938 | else |
939 | { |
939 | { |
940 | LageKorrekturRoll = 0; |
940 | LageKorrekturRoll = 0; |
941 | LageKorrekturNick = 0; |
941 | LageKorrekturNick = 0; |
- | 942 | TrichterFlug = 0; |
|
942 | } |
943 | } |
943 | 944 | ||
944 | if(!IntegralFaktor) { LageKorrekturRoll = 0; LageKorrekturNick = 0;} // z.B. bei HH |
945 | if(!IntegralFaktor) { LageKorrekturRoll = 0; LageKorrekturNick = 0;} // z.B. bei HH |
945 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++ |
946 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++ |
946 | MittelIntegralNick_Alt = MittelIntegralNick; |
947 | MittelIntegralNick_Alt = MittelIntegralNick; |
947 | MittelIntegralRoll_Alt = MittelIntegralRoll; |
948 | MittelIntegralRoll_Alt = MittelIntegralRoll; |
948 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++ |
949 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++ |