Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1793 → Rev 1797

/branches/V0.82a_ACC-HH_MartinR/analog.c
24,7 → 24,7
volatile unsigned int ZaehlMessungen = 0;
unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115;
volatile unsigned char AdReady = 1;
float NeutralAccZ_float;
//float NeutralAccZ_float; // MartinR : wozu ?
//#######################################################################################
//
void ADC_Init(void)
68,7 → 68,7
}
DruckOffsetSetting = off;
}
#else
#else
off = GetParamByte(PID_PRESSURE_OFFSET);
if(off > 20) off -= 10;
OCR0A = off;
142,7 → 142,7
//#######################################################################################
{
static unsigned char kanal=0,state = 0;
static signed char subcount = 0;
//static signed char subcount = 0; // MartinR: wird nicht mehr benötigt, da deaktiviert
static signed int gier1, roll1, nick1, nick_filter, roll_filter;
static signed int accy, accx;
static long tmpLuftdruck = 0;
185,6 → 185,9
break;
case 8:
AdWertAccHoch = (signed int) ADC - NeutralAccZ;
/* // MartinR: deaktivieren Anfang
if(AdWertAccHoch > 1)
{
if(NeutralAccZ < 750)
203,6 → 206,9
if(subcount < -100) { NeutralAccZ--; subcount += 100;}
}
}
*/ // MartinR: deaktivieren Ende
messanzahl_AccHoch = 1;
Aktuell_az = ADC;
Mess_Integral_Hoch += AdWertAccHoch; // Integrieren
240,7 → 246,9
if(PlatinenVersion == 10) nick1 *= 2; else nick1 *= 4;
AdWertNick = nick1 / 8;
nick_filter = (nick_filter + nick1) / 2;
HiResNick = nick_filter - AdNeutralNick;
//HiResNick = nick_filter - AdNeutralNick; // MartinR: so war es
HiResNick = (nick_filter - AdNeutralNick + 4 ) / 8 ; // MartinR: + 4um Rundungsfehler zu verbessern
// MartinR: /8 von fc.c nach hier verschoben um Code zu sparen
AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2;
kanal = AD_ROLL;
break;
249,7 → 257,9
if(PlatinenVersion == 10) roll1 *= 2; else roll1 *= 4;
AdWertRoll = roll1 / 8;
roll_filter = (roll_filter + roll1) / 2;
HiResRoll = roll_filter - AdNeutralRoll;
HiResRoll = roll_filter - AdNeutralRoll; // MartinR: so war es
HiResRoll = (roll_filter - AdNeutralRoll + 4 ) / 8; // MartinR: + 4um Rundungsfehler zu verbessern
// MartinR: /8 von fc.c nach hier verschoben um Code zu sparen
AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2;
kanal = AD_DRUCK;
break;
259,7 → 269,9
ZaehlMessungen++;
// "break" fehlt hier absichtlich
case 9:
MessLuftdruck = ADC;
//MessLuftdruck = ADC; // MartinR: so war es
MessLuftdruck = ADC + ((Parameter_UserParam4 * AdWertAccHoch) / 256) ; // MartinR:
// mit Korrektur der Beschleunigungsempfindlichkeit des Luftdrucksensors
tmpLuftdruck += MessLuftdruck;
if(++messanzahl_Druck >= 18)
{