Subversion Repositories FlightCtrl

Compare Revisions

Regard whitespace Rev 123 → Rev 124

/branches/salvo_gierkompass/fc.c
76,7 → 76,9
unsigned char Notlandung = 0;
unsigned char HoehenReglerAktiv = 0;
static int SignalSchlecht = 0;
//Salvo 2.9.2007 Ersatzkompass
volatile long GyroKomp_Int,GyroKomp_Int2;
// Salvo End
float GyroFaktor;
float IntegralFaktor;
 
170,6 → 172,10
KompassStartwert = KompassValue;
GPS_Neutral();
beeptime = 50;
//Salvo 2.9.2007 Ersatzkompass
GyroKomp_Int = 0;
GyroKomp_Int2 = 0;
// Salvo End
}
 
//############################################################################
603,7 → 609,7
IntegralFehlerRoll = IntegralRoll2 - IntegralRoll;
ZaehlMessungen = 0;
// Salvo 1.9.2007 *************************
// Abgleich Roll und Nick Gyro nur, wenn nahezu waagrechte Lage
// Abgleich Roll und Nick Gyro vollsteandig nur, wenn nahezu waagrechte Lage, ansonsten abschwaechen
ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
w = (abs(Mittelwert_AccNick));
v = (abs(Mittelwert_AccRoll));
615,6 → 621,20
if(IntegralFehlerRoll > 500/DRIFT_FAKTOR) AdNeutralRoll++;
if(IntegralFehlerRoll < -500/DRIFT_FAKTOR) AdNeutralRoll--;
}
else if ((w < 2*ACC_WAAGRECHT_LIMIT) && (v < 2*ACC_WAAGRECHT_LIMIT)) // langsamer kompensieren, weil ACC Werte unsicherer sind, was die Neigung angeht
{
if(IntegralFehlerNick > 500*2/DRIFT_FAKTOR) AdNeutralNick++;
if(IntegralFehlerNick < -500*2/DRIFT_FAKTOR) AdNeutralNick--;
if(IntegralFehlerRoll > 500*2/DRIFT_FAKTOR) AdNeutralRoll++;
if(IntegralFehlerRoll < -500*2/DRIFT_FAKTOR) AdNeutralRoll--;
}
else // noch langsamer kompensieren, weil ACC Werte unsicherer sind, was die Neigung angeht
{
if(IntegralFehlerNick > 500*4/DRIFT_FAKTOR) AdNeutralNick++;
if(IntegralFehlerNick < -500*4/DRIFT_FAKTOR) AdNeutralNick--;
if(IntegralFehlerRoll > 500*4/DRIFT_FAKTOR) AdNeutralRoll++;
if(IntegralFehlerRoll < -500*4/DRIFT_FAKTOR) AdNeutralRoll--;
}
// Salvo End
 
// Salvo 31.8.2007 Abgleich Giergyro nur wenn Kompass aktiv und ok ist ***********************
658,18 → 678,18
}
else if ((w < 2 * ACC_WAAGRECHT_LIMIT) && (v < 2 * ACC_WAAGRECHT_LIMIT))
{
Mess_IntegralNick -= tmp_long/8;
Mess_IntegralRoll -= tmp_long/8;
Mess_IntegralNick -= tmp_long/2; //Vorher 8
Mess_IntegralRoll -= tmp_long2/2;
}
else if ((w < 4 * ACC_WAAGRECHT_LIMIT) && (v < 4 * ACC_WAAGRECHT_LIMIT))
{
Mess_IntegralNick -= tmp_long/16;
Mess_IntegralRoll -= tmp_long/16;
Mess_IntegralNick -= tmp_long/4;
Mess_IntegralRoll -= tmp_long2/4;
}
else
{
Mess_IntegralNick -= tmp_long/32;
Mess_IntegralRoll -= tmp_long2/32;
Mess_IntegralNick -= tmp_long/8;
Mess_IntegralRoll -= tmp_long2/8;
}
// Salvo End ***********************
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
746,8 → 766,9
DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);
DebugOut.Analog[7] = GasMischanteil;
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[9] = tmp_long;
DebugOut.Analog[10] = tmp_long2;
DebugOut.Analog[9] = GyroKomp_Int;
DebugOut.Analog[10] = GyroKomp_Int2;
 
// DebugOut.Analog[9] = SollHoehe;
// DebugOut.Analog[10] = Mess_Integral_Gier / 128;
// DebugOut.Analog[11] = KompassStartwert;