884,7 → 884,12 |
} |
else last_n_n = 1; |
} else last_n_n = 0; |
} else cnt = 0; |
} |
else |
{ |
cnt = 0; |
KompassSignalSchlecht = 500; |
} |
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt; |
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt; |
920,6 → 925,7 |
} else |
{ |
cnt = 0; |
KompassSignalSchlecht = 500; |
} |
|
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp; |
956,7 → 962,7 |
// Gieren |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// if(GasMischanteil < 35) { if(StickGier > 10) StickGier = 10; else if(StickGier < -10) StickGier = -10;}; |
if(abs(StickGier) > 20) // war 35 |
if(abs(StickGier) > 15) // war 35 |
{ |
if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) |
{ |
980,7 → 986,6 |
if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)) |
{ |
int w,v,r,fehler,korrektur; |
static int KompassSignalSchlecht = 0; |
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
v = abs(IntegralRoll /512); |
if(v > w) w = v; // grösste Neigung ermitteln |
987,10 → 992,11 |
korrektur = w / 8 + 1; |
if(w < 25 && NeueKompassRichtungMerken && !KompassSignalSchlecht) |
{ |
KompassStartwert = KompassValue; |
beeptime = 200; |
// KompassStartwert = KompassValue; |
KompassStartwert = (ErsatzKompass/GIER_GRAD_FAKTOR); |
NeueKompassRichtungMerken = 0; |
} |
|
fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; |
ErsatzKompass += (fehler * 8) / korrektur; |
w = (w * Parameter_KompassWirkung) / 64; // auf die Wirkung normieren |
1001,7 → 1007,8 |
{ |
GierGyroFehler += fehler; |
v = 64 + ((MaxStickNick + MaxStickRoll)) / 8; |
r = KompassRichtung; |
r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassStartwert) % 360) - 180; |
// r = KompassRichtung; |
v = (r * w) / v; // nach Kompass ausrichten |
w = 3 * Parameter_KompassWirkung; |
if(v > w) v = w; // Begrenzen |
1012,6 → 1019,7 |
if(KompassSignalSchlecht) KompassSignalSchlecht--; |
} |
else KompassSignalSchlecht = 250; // so lange das Signal taub stellen --> ca. 0,5 sek |
|
} |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
|