Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1134 → Rev 1154

/branches/thjac/V1_11/analog.c
6,6 → 6,7
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#include "parameter.h"
 
volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az, UBat = 100;
volatile int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0;
16,7 → 17,6
volatile int StartLuftdruck;
volatile unsigned int MessLuftdruck = 1023;
unsigned char DruckOffsetSetting;
signed char ExpandBaro = 0;
volatile int HoeheD = 0;
volatile char messanzahl_Druck;
volatile int tmpLuftdruck;
23,10 → 23,6
volatile unsigned int ZaehlMessungen = 0;
unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115;
unsigned char GyroDefektN = 0,GyroDefektR = 0,GyroDefektG = 0;
 
int airPressure = 0;
 
 
//#######################################################################################
//
void ADC_Init(void)
43,7 → 39,6
off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]);
if(off > 20) off -= 10;
OCR0A = off;
ExpandBaro = 0;
Delay_ms_Mess(100);
if(MessLuftdruck < 850) off = 0;
for(; off < 250;off++)
51,7 → 46,7
OCR0A = off;
Delay_ms_Mess(50);
printf(".");
if(MessLuftdruck < 850) break;
if(MessLuftdruck < 900) break;
}
eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off);
DruckOffsetSetting = off;
123,8 → 118,6
break;
case 6:
if(PlatinenVersion == 10) AdWertGier = (ADC + gier1) / 2;
else
if(PlatinenVersion == 20) AdWertGier = 1023 - (ADC + gier1);
else AdWertGier = ADC + gier1;
kanal = 1;
break;
167,17 → 160,15
break;
case 10:
tmpLuftdruck += ADC;
if(++messanzahl_Druck >= 5) {
if(++messanzahl_Druck >= 5)
{
MessLuftdruck = ADC;
messanzahl_Druck = 0;
HoeheD = (7 * HoeheD + (int) PARAM_ALT_D * (int)(StartLuftdruck - tmpLuftdruck - HoehenWert))/8; // D-Anteil = neuerWert - AlterWert
Luftdruck = (tmpLuftdruck + 3 * Luftdruck) / 4;
airPressure = StartLuftdruck - Luftdruck;
HoehenWert = StartLuftdruck - Luftdruck;
tmpLuftdruck = 0;
DebugOut.Analog[5] = airPressure;
}
}
kanal = 0;
state = 0;
break;