Rev 1320 | Rev 1338 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1320 | Rev 1322 | ||
---|---|---|---|
Line 11... | Line 11... | ||
11 | volatile int HiResNick = 2500, HiResRoll = 2500; |
11 | volatile int HiResNick = 2500, HiResRoll = 2500; |
12 | volatile int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0; |
12 | volatile int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0; |
13 | volatile int AdWertAccRoll = 0,AdWertAccNick = 0,AdWertAccHoch = 0; |
13 | volatile int AdWertAccRoll = 0,AdWertAccNick = 0,AdWertAccHoch = 0; |
14 | volatile char messanzahl_AccHoch = 0; |
14 | volatile char messanzahl_AccHoch = 0; |
15 | volatile long Luftdruck = 32000; |
15 | volatile long Luftdruck = 32000; |
- | 16 | volatile long SummenHoehe = 0; |
|
16 | volatile int StartLuftdruck; |
17 | volatile int StartLuftdruck; |
17 | volatile unsigned int MessLuftdruck = 1023; |
18 | volatile unsigned int MessLuftdruck = 1023; |
18 | unsigned char DruckOffsetSetting; |
19 | unsigned char DruckOffsetSetting; |
19 | signed char ExpandBaro = 0; |
20 | signed char ExpandBaro = 0; |
20 | volatile int VarioMeter = 0; |
21 | volatile int VarioMeter = 0; |
Line 29... | Line 30... | ||
29 | { |
30 | { |
30 | ADMUX = 0;//Referenz ist extern |
31 | ADMUX = 0;//Referenz ist extern |
31 | ANALOG_ON; |
32 | ANALOG_ON; |
32 | } |
33 | } |
Line -... | Line 34... | ||
- | 34 | ||
- | 35 | #define DESIRED_H_ADC 850 |
|
33 | 36 | ||
34 | void SucheLuftruckOffset(void) |
37 | void SucheLuftruckOffset(void) |
35 | { |
38 | { |
36 | unsigned int off; |
39 | unsigned int off; |
37 | off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]); |
40 | off = eeprom_read_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET]); |
38 | if(off > 20) off -= 10; |
41 | if(off > 20) off -= 10; |
39 | OCR0A = off; |
42 | OCR0A = off; |
40 | ExpandBaro = 0; |
43 | ExpandBaro = 0; |
41 | Delay_ms_Mess(100); |
44 | Delay_ms_Mess(100); |
42 | if(MessLuftdruck < 850) off = 0; |
45 | if(MessLuftdruck < DESIRED_H_ADC) off = 0; |
43 | for(; off < 250;off++) |
46 | for(; off < 250;off++) |
44 | { |
47 | { |
45 | OCR0A = off; |
48 | OCR0A = off; |
46 | Delay_ms_Mess(50); |
49 | Delay_ms_Mess(50); |
47 | printf("."); |
50 | printf("."); |
48 | if(MessLuftdruck < 850) break; |
51 | if(MessLuftdruck < DESIRED_H_ADC) break; |
49 | } |
52 | } |
50 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off); |
53 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_LAST_OFFSET], off); |
51 | DruckOffsetSetting = off; |
54 | DruckOffsetSetting = off; |
52 | Delay_ms_Mess(300); |
55 | Delay_ms_Mess(300); |
Line 109... | Line 112... | ||
109 | static signed int gier1, roll1, nick1, nick_filter, roll_filter; |
112 | static signed int gier1, roll1, nick1, nick_filter, roll_filter; |
110 | static signed int accy, accx; |
113 | static signed int accy, accx; |
Line 111... | Line 114... | ||
111 | 114 | ||
112 | static long tmpLuftdruck = 0; |
115 | static long tmpLuftdruck = 0; |
113 | static char messanzahl_Druck = 0; |
- | |
114 | static long SummenHoehe = 0; |
116 | static char messanzahl_Druck = 0; |
115 | switch(state++) |
117 | switch(state++) |
116 | { |
118 | { |
117 | case 0: |
119 | case 0: |
118 | nick1 = ADC; |
120 | nick1 = ADC; |
Line 222... | Line 224... | ||
222 | ZaehlMessungen++; |
224 | ZaehlMessungen++; |
223 | // "break" fehlt hier absichtlich |
225 | // "break" fehlt hier absichtlich |
224 | case 9: |
226 | case 9: |
225 | MessLuftdruck = ADC; |
227 | MessLuftdruck = ADC; |
226 | tmpLuftdruck += MessLuftdruck; |
228 | tmpLuftdruck += MessLuftdruck; |
227 | #define SM_FILTER 16 |
- | |
228 | if(++messanzahl_Druck >= 18) |
229 | if(++messanzahl_Druck >= 18) |
229 | { |
230 | { |
230 | Luftdruck = (7 * Luftdruck + tmpLuftdruck - (18 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step |
231 | Luftdruck = (7 * Luftdruck + tmpLuftdruck - (18 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step |
231 | HoehenWert = StartLuftdruck - Luftdruck; |
232 | HoehenWert = StartLuftdruck - Luftdruck; |
232 | SummenHoehe -= SummenHoehe/SM_FILTER; |
233 | SummenHoehe -= SummenHoehe/SM_FILTER; |