Rev 846 | Rev 854 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 846 | Rev 847 | ||
---|---|---|---|
Line 882... | Line 882... | ||
882 | if(ausgleichNick < -5000) ausgleichNick = -5000; |
882 | if(ausgleichNick < -5000) ausgleichNick = -5000; |
883 | LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL; |
883 | LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL; |
884 | } |
884 | } |
885 | else last_n_n = 1; |
885 | else last_n_n = 1; |
886 | } else last_n_n = 0; |
886 | } else last_n_n = 0; |
- | 887 | } |
|
- | 888 | else |
|
- | 889 | { |
|
887 | } else cnt = 0; |
890 | cnt = 0; |
- | 891 | KompassSignalSchlecht = 500; |
|
- | 892 | } |
|
888 | if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
893 | if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
889 | if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt; |
894 | if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt; |
890 | if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt; |
895 | if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt; |
Line 891... | Line 896... | ||
891 | 896 | ||
Line 918... | Line 923... | ||
918 | else last_r_n = 1; |
923 | else last_r_n = 1; |
919 | } else last_r_n = 0; |
924 | } else last_r_n = 0; |
920 | } else |
925 | } else |
921 | { |
926 | { |
922 | cnt = 0; |
927 | cnt = 0; |
- | 928 | KompassSignalSchlecht = 500; |
|
923 | } |
929 | } |
Line 924... | Line 930... | ||
924 | 930 | ||
925 | if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
931 | if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
926 | if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt; |
932 | if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt; |
Line 954... | Line 960... | ||
954 | 960 | ||
955 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
961 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
956 | // Gieren |
962 | // Gieren |
957 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
963 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
958 | // if(GasMischanteil < 35) { if(StickGier > 10) StickGier = 10; else if(StickGier < -10) StickGier = -10;}; |
964 | // if(GasMischanteil < 35) { if(StickGier > 10) StickGier = 10; else if(StickGier < -10) StickGier = -10;}; |
959 | if(abs(StickGier) > 20) // war 35 |
965 | if(abs(StickGier) > 15) // war 35 |
960 | { |
966 | { |
961 | if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) |
967 | if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) |
962 | { |
968 | { |
963 | NeueKompassRichtungMerken = 1; |
969 | NeueKompassRichtungMerken = 1; |
Line 978... | Line 984... | ||
978 | //DebugOut.Analog[29] = (MaxStickNick + MaxStickRoll); |
984 | //DebugOut.Analog[29] = (MaxStickNick + MaxStickRoll); |
Line 979... | Line 985... | ||
979 | 985 | ||
980 | if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)) |
986 | if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)) |
981 | { |
987 | { |
982 | int w,v,r,fehler,korrektur; |
- | |
983 | static int KompassSignalSchlecht = 0; |
988 | int w,v,r,fehler,korrektur; |
984 | w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
989 | w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
985 | v = abs(IntegralRoll /512); |
990 | v = abs(IntegralRoll /512); |
986 | if(v > w) w = v; // grösste Neigung ermitteln |
991 | if(v > w) w = v; // grösste Neigung ermitteln |
987 | korrektur = w / 8 + 1; |
992 | korrektur = w / 8 + 1; |
988 | if(w < 25 && NeueKompassRichtungMerken && !KompassSignalSchlecht) |
993 | if(w < 25 && NeueKompassRichtungMerken && !KompassSignalSchlecht) |
- | 994 | { |
|
989 | { |
995 | beeptime = 200; |
- | 996 | // KompassStartwert = KompassValue; |
|
990 | KompassStartwert = KompassValue; |
997 | KompassStartwert = (ErsatzKompass/GIER_GRAD_FAKTOR); |
991 | NeueKompassRichtungMerken = 0; |
998 | NeueKompassRichtungMerken = 0; |
992 | } |
- | |
993 | 999 | } |
|
994 | fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; |
1000 | fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; |
995 | ErsatzKompass += (fehler * 8) / korrektur; |
1001 | ErsatzKompass += (fehler * 8) / korrektur; |
996 | w = (w * Parameter_KompassWirkung) / 64; // auf die Wirkung normieren |
1002 | w = (w * Parameter_KompassWirkung) / 64; // auf die Wirkung normieren |
997 | w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln |
1003 | w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln |
998 | if(w > 0) |
1004 | if(w > 0) |
999 | { |
1005 | { |
1000 | if(!KompassSignalSchlecht) |
1006 | if(!KompassSignalSchlecht) |
1001 | { |
1007 | { |
1002 | GierGyroFehler += fehler; |
1008 | GierGyroFehler += fehler; |
- | 1009 | v = 64 + ((MaxStickNick + MaxStickRoll)) / 8; |
|
1003 | v = 64 + ((MaxStickNick + MaxStickRoll)) / 8; |
1010 | r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassStartwert) % 360) - 180; |
1004 | r = KompassRichtung; |
1011 | // r = KompassRichtung; |
1005 | v = (r * w) / v; // nach Kompass ausrichten |
1012 | v = (r * w) / v; // nach Kompass ausrichten |
1006 | w = 3 * Parameter_KompassWirkung; |
1013 | w = 3 * Parameter_KompassWirkung; |
1007 | if(v > w) v = w; // Begrenzen |
1014 | if(v > w) v = w; // Begrenzen |
1008 | else |
1015 | else |
1009 | if(v < -w) v = -w; |
1016 | if(v < -w) v = -w; |
1010 | Mess_Integral_Gier += v; |
1017 | Mess_Integral_Gier += v; |
1011 | } |
1018 | } |
1012 | if(KompassSignalSchlecht) KompassSignalSchlecht--; |
1019 | if(KompassSignalSchlecht) KompassSignalSchlecht--; |
1013 | } |
1020 | } |
- | 1021 | else KompassSignalSchlecht = 250; // so lange das Signal taub stellen --> ca. 0,5 sek |
|
1014 | else KompassSignalSchlecht = 250; // so lange das Signal taub stellen --> ca. 0,5 sek |
1022 | |
1015 | } |
1023 | } |
Line 1016... | Line 1024... | ||
1016 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1024 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1017 | 1025 |