Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2233 → Rev 2234

/test_branches/FC2_2/analog.c
68,6 → 68,8
volatile unsigned int ZaehlMessungen = 0;
unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115;
volatile unsigned char AdReady = 1;
volatile long HoehenWertF = 0, HoehenDiff, HoeheAlt;
volatile long vv, vvSum;
 
//#######################################################################################
void ADC_Init(void)
189,10 → 191,10
static signed int gier1, roll1, nick1, nick_filter, roll_filter;
static signed int accy, accx;
static long tmpLuftdruck = 0;
static char messanzahl_Druck = 0;
// static char messanzahl_Druck = 0;
#define ANZ_RING 32
static long VarioRing[ANZ_RING];
static unsigned char RingPtr = 0;
//static long VarioRing[ANZ_RING];
//static unsigned char RingPtr = 0;
 
switch(state++)
{
241,8 → 243,8
//if(PlatinenVersion < 22)
//else Aktuell_az = 1024 - ADC;
tmp = (signed int) Aktuell_az - NeutralAccZ;
AdWertAccHoch -= AdWertAccHoch/ACC_Z_FILTER;
AdWertAccHoch += tmp;
AdWertAccHoch -= AdWertAccHoch/32;
AdWertAccHoch += tmp;
// AdWertAccHoch = (7 * AdWertAccHoch + tmp) / 8;
}
if(PlatinenVersion < 22)
320,6 → 322,14
break;
// - neu -------------------------------------------------
case 17:
HoehenDiff = HoehenWert - HoeheAlt;
vvSum = vvSum - vv + (Aktuell_az - NeutralAccZ)*6 + HoehenDiff*500; // Fusion vert. velocity
vv = vvSum/501;
HoeheAlt = HoehenWert;
DebugOut.Analog[17] = vv;
SummenHoehe = SummenHoehe - HoehenWertF + vv + HoehenWert;
HoehenWertF = SummenHoehe/501; //Fusion Hoehe
DebugOut.Analog[18] = HoehenWertF;
state = 0;
AdReady = 1;
ZaehlMessungen++;
326,6 → 336,12
// "break" fehlt hier absichtlich
case 9:
MessLuftdruck = ADC;
tmpLuftdruck = MessLuftdruck - 507 * (long)ExpandBaro; // -507 counts per offset step
Luftdruck -= Luftdruck/16;
Luftdruck += tmpLuftdruck;
HoehenWert = (StartLuftdruck - Luftdruck)/1;
if(PlatinenVersion > 21) HoehenWert = HoehenWert/3 + AdWertAccHoch/200; //+ compensates disturbance due to acceleration
/* // Qopter: deaktivieren Anfang
if(PlatinenVersion > 21 && NeutralAccZ) MessLuftdruck -= (Aktuell_az - NeutralAccZ)/12;
tmpLuftdruck += MessLuftdruck;
if(++messanzahl_Druck >= 16) // war bis 0.86 "18"
334,7 → 350,7
long tmp_long;
Luftdruck = (7 * Luftdruck + tmpLuftdruck - (16 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step
HoehenWert = StartLuftdruck - Luftdruck;
if(PlatinenVersion > 21) HoehenWert /= 3;
if(PlatinenVersion > 21) HoehenWert = HoehenWert/3 + AdWertAccHoch/200;
 
VarioRing[RingPtr++] = HoehenWert;
RingPtr %= ANZ_RING;
359,6 → 375,7
tmpLuftdruck /= 2;
messanzahl_Druck = 16/2;
}
*/ // Qopter: deaktivieren Ende
kanal = AD_NICK;
DebugOut.Analog[16] = VarioMeter * 8;
break;
/test_branches/FC2_2/fc.c
191,7 → 191,7
DebugOut.Analog[4] = (signed int) AdNeutralGier - AdWertGier;
DebugOut.Analog[5] = HoehenWert;///5;
DebugOut.Analog[6] = Aktuell_az;//AdWertAccHoch;//(Mess_Integral_Hoch / 512);
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[8] = AdWertAccHoch/200;//KompassValue;
DebugOut.Analog[9] = UBat;
DebugOut.Analog[10] = SenderOkay;
DebugOut.Analog[11] = ErsatzKompassInGrad;
1045,7 → 1045,7
// Bei Empfangsausfall im Flug
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DebugOut.Analog[16] = GasIsZeroCnt;
DebugOut.Analog[17] = VarioMeter;
//DebugOut.Analog[17] = VarioMeter;
 
if(FC_StatusFlags2 & FC_STATUS2_RC_FAILSAVE_ACTIVE)
{