Rev 823 | Rev 831 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 823 | Rev 824 | ||
---|---|---|---|
Line 955... | Line 955... | ||
955 | // Gieren |
955 | // Gieren |
956 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
956 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
957 | // if(GasMischanteil < 35) { if(StickGier > 10) StickGier = 10; else if(StickGier < -10) StickGier = -10;}; |
957 | // if(GasMischanteil < 35) { if(StickGier > 10) StickGier = 10; else if(StickGier < -10) StickGier = -10;}; |
958 | if(abs(StickGier) > 20) // war 35 |
958 | if(abs(StickGier) > 20) // war 35 |
959 | { |
959 | { |
960 | if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) { NeueKompassRichtungMerken = 1; KompassSignalSchlecht = 250;}; |
960 | if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) |
- | 961 | { |
|
- | 962 | NeueKompassRichtungMerken = 1; |
|
- | 963 | KompassStartwert = ErsatzKompass; |
|
- | 964 | KompassSignalSchlecht = 250; |
|
- | 965 | }; |
|
961 | } |
966 | } |
962 | tmp_int = (long) EE_Parameter.Gier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx² |
967 | tmp_int = (long) EE_Parameter.Gier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx² |
963 | tmp_int += (EE_Parameter.Gier_P * StickGier) / 4; |
968 | tmp_int += (EE_Parameter.Gier_P * StickGier) / 4; |
964 | sollGier = tmp_int; |
969 | sollGier = tmp_int; |
965 | Mess_Integral_Gier -= tmp_int; |
970 | Mess_Integral_Gier -= tmp_int; |
Line 979... | Line 984... | ||
979 | v = abs(IntegralRoll /512); |
984 | v = abs(IntegralRoll /512); |
980 | //v /= 4; |
985 | //v /= 4; |
981 | //w /= 4; |
986 | //w /= 4; |
982 | if(v > w) w = v; // grösste Neigung ermitteln |
987 | if(v > w) w = v; // grösste Neigung ermitteln |
983 | // if((MaxStickNick > 32) || (MaxStickRoll > 32)) w *= 2; |
988 | // if((MaxStickNick > 32) || (MaxStickRoll > 32)) w *= 2; |
984 | korrektur = w + 4; |
989 | korrektur = w / 8 + 1; |
985 | if(w < 25 && NeueKompassRichtungMerken && !KompassSignalSchlecht) |
990 | if(w < 25 && NeueKompassRichtungMerken && !KompassSignalSchlecht) |
986 | { |
991 | { |
987 | KompassStartwert = KompassValue; |
992 | KompassStartwert = KompassValue; |
988 | NeueKompassRichtungMerken = 0; |
993 | NeueKompassRichtungMerken = 0; |
989 | } |
994 | } |
Line 990... | Line 995... | ||
990 | 995 | ||
991 | fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; |
996 | fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; |
992 | ErsatzKompass += (fehler * 8);// / korrektur; |
997 | ErsatzKompass += (fehler * 8) / korrektur; |
993 | // DebugOut.Analog[10] = fehler; |
998 | // DebugOut.Analog[10] = fehler; |
994 | w = (w * Parameter_KompassWirkung) / 64; // auf die Wirkung normieren |
999 | w = (w * Parameter_KompassWirkung) / 64; // auf die Wirkung normieren |
995 | w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln |
1000 | w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln |
996 | if(w > 0) |
1001 | if(w > 0) |