75,7 → 75,8 |
unsigned char MAX_GAS,MIN_GAS; |
unsigned char Notlandung = 0; |
unsigned char HoehenReglerAktiv = 0; |
|
static int SignalSchlecht = 0; |
|
float GyroFaktor; |
float IntegralFaktor; |
|
595,8 → 596,18 |
if(IntegralFehlerNick < -500/DRIFT_FAKTOR) AdNeutralNick--; |
if(IntegralFehlerRoll > 500/DRIFT_FAKTOR) AdNeutralRoll++; |
if(IntegralFehlerRoll < -500/DRIFT_FAKTOR) AdNeutralRoll--; |
if(Mess_Integral_Gier2 > 500/DRIFT_FAKTOR) AdNeutralGier--; |
if(Mess_Integral_Gier2 <-500/DRIFT_FAKTOR) AdNeutralGier++; |
//Salvo 31.8.2007 Abgleich Giergyro nur wenn Kompass aktiv und ok ist *********************** |
if (CFG_KOMPASS_FIX && (!SignalSchlecht)) |
{ |
if(Mess_Integral_Gier2 > 500/DRIFT_FAKTOR) AdNeutralGier--; |
if(Mess_Integral_Gier2 <-500/DRIFT_FAKTOR) AdNeutralGier++; |
} |
else |
{ |
Mess_Integral_Gier2 = 0; |
} |
|
// Salvo End *********************** |
ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern |
Mess_IntegralNick2 = IntegralNick; |
Mess_IntegralRoll2 = IntegralRoll; |
640,7 → 651,6 |
if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)) |
{ |
int w,v; |
static int SignalSchlecht = 0; |
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
v = abs(IntegralRoll /512); |
if(v > w) w = v; // grösste Neigung ermitteln |
692,6 → 702,7 |
DebugOut.Analog[6] = (Mess_Integral_Hoch / 512); |
DebugOut.Analog[7] = GasMischanteil; |
DebugOut.Analog[8] = KompassValue; |
DebugOut.Analog[9] = Mess_Integral_Gier2; |
// DebugOut.Analog[9] = SollHoehe; |
// DebugOut.Analog[10] = Mess_Integral_Gier / 128; |
// DebugOut.Analog[11] = KompassStartwert; |