Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 440 → Rev 453

/branches/v0.60_MicroMag3_Nick666/trunc/fc.c
71,6 → 71,7
volatile int KompassValue = 0;
volatile int KompassStartwert = 0;
volatile int KompassRichtung = 0;
uint8_t updKompass=0;
unsigned char MAX_GAS,MIN_GAS;
unsigned char Notlandung = 0;
unsigned char HoehenReglerAktiv = 0;
130,9 → 131,9
acc_neutral.X = 0;
acc_neutral.Y = 0;
acc_neutral.Z = 0;
CalibrierMittelwert();
timer = SetDelay(5);
while (!CheckDelay(timer));
Delay_ms_Mess(100);
CalibrierMittelwert();
acc_neutral.X = abs(Mittelwert_AccNick) / ACC_AMPLIFY;
154,10 → 155,11
AdNeutralNick = 0;
AdNeutralRoll = 0;
AdNeutralGier = 0;
CalibrierMittelwert();
timer = SetDelay(5);
while (!CheckDelay(timer));
Delay_ms_Mess(100);
CalibrierMittelwert();
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
437,6 → 439,7
static int hoehenregler = 0;
static char TimerWerteausgabe = 0;
static char NeueKompassRichtungMerken = 0;
Mittelwert();
 
GRN_ON;
656,7 → 659,15
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
{
int w,v;
static int SignalSchlecht = 0;
static uint8_t SignalSchlecht = 0;
if (!updKompass--) // Aufruf mit ~10 Hz
{
KompassValue = heading_MM3();
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
updKompass = 50;
}
w = abs(IntegralNick /1024); // mit zunehmender Neigung den Einfluss drosseln
v = abs(IntegralRoll /1024);
if(v > w) w = v; // grösste Neigung ermitteln
674,7 → 685,7
ANALOG_ON; // ADC einschalten
if(SignalSchlecht) SignalSchlecht--;
}
else SignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek
else SignalSchlecht = 250; // so lange das Signal taub stellen --> ca. 1/2 sek
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++