Rev 2426 | Rev 2492 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2426 | Rev 2471 | ||
---|---|---|---|
Line 68... | Line 68... | ||
68 | volatile unsigned int ZaehlMessungen = 0; |
68 | volatile unsigned int ZaehlMessungen = 0; |
69 | unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115; |
69 | unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115; |
70 | volatile unsigned char AdReady = 1; |
70 | volatile unsigned char AdReady = 1; |
71 | unsigned int BaroStep = 500; |
71 | unsigned int BaroStep = 500; |
72 | long ExpandBaroStep = 0; |
72 | long ExpandBaroStep = 0; |
73 | volatile long HoehenWertF = 0; |
73 | long HoehenWertF = 0; |
- | 74 | long HoehenWert_Mess = 0; |
|
74 | #if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)) |
75 | #if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)) |
- | 76 | long HoehenWertF_Mess = 0; |
|
75 | unsigned char CalAthmospheare = 16; |
77 | unsigned char CalAthmospheare = 16; |
76 | unsigned char AD_ACC_Y = 6; |
78 | unsigned char AD_ACC_Y = 6; |
77 | unsigned char AD_ACC_X = 7; |
79 | unsigned char AD_ACC_X = 7; |
78 | #endif |
80 | #endif |
Line 336... | Line 338... | ||
336 | break; |
338 | break; |
337 | case 17: |
339 | case 17: |
338 | #if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)) |
340 | #if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)) |
339 | if(ACC_AltitudeControl) |
341 | if(ACC_AltitudeControl) |
340 | { |
342 | { |
341 | HoehenWertF = (ACC_AltitudeFusion(0) + SA_FILTER/2)/SA_FILTER; // cm |
343 | HoehenWertF_Mess = (ACC_AltitudeFusion(0) + SA_FILTER/2)/SA_FILTER; // cm |
342 | } |
344 | } |
343 | else HoehenWertF = HoehenWert; |
345 | else HoehenWertF_Mess = HoehenWert; |
344 | #else |
- | |
345 | HoehenWertF = HoehenWert; |
- | |
346 | #endif |
346 | #endif |
347 | - | ||
348 | state = 0; |
347 | state = 0; |
349 | AdReady = 1; |
348 | AdReady = 1; |
350 | ZaehlMessungen++; |
349 | ZaehlMessungen++; |
351 | // "break" fehlt hier absichtlich |
350 | // "break" fehlt hier absichtlich |
352 | case 9: |
351 | case 9: |
Line 357... | Line 356... | ||
357 | // ExpandBaroStep = BaroStep * (long)ExpandBaro; // wird in fc.c aufgerufen |
356 | // ExpandBaroStep = BaroStep * (long)ExpandBaro; // wird in fc.c aufgerufen |
358 | // tmpLuftdruck = MessLuftdruck - BaroStep * (long)ExpandBaro; // -523 counts per offset step |
357 | // tmpLuftdruck = MessLuftdruck - BaroStep * (long)ExpandBaro; // -523 counts per offset step |
359 | tmpLuftdruck = MessLuftdruck - ExpandBaroStep; // -523 counts per offset step |
358 | tmpLuftdruck = MessLuftdruck - ExpandBaroStep; // -523 counts per offset step |
360 | Luftdruck -= Luftdruck / CalAthmospheare; // 16 |
359 | Luftdruck -= Luftdruck / CalAthmospheare; // 16 |
361 | Luftdruck += tmpLuftdruck; |
360 | Luftdruck += tmpLuftdruck; |
362 | HoehenWert = StartLuftdruck - Luftdruck; // cm |
361 | HoehenWert_Mess = StartLuftdruck - Luftdruck; // cm |
363 | } |
362 | } |
364 | else |
363 | else |
365 | #endif |
364 | #endif |
366 | { // old version (until FC V2.1) |
365 | { // old version (until FC V2.1) |
367 | tmpLuftdruck += MessLuftdruck; |
366 | tmpLuftdruck += MessLuftdruck; |
Line 369... | Line 368... | ||
369 | { |
368 | { |
370 | signed int tmp; |
369 | signed int tmp; |
371 | // Luftdruck = (7 * Luftdruck + tmpLuftdruck - (16 * BaroStep) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step |
370 | // Luftdruck = (7 * Luftdruck + tmpLuftdruck - (16 * BaroStep) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step |
372 | // ExpandBaroStep = (16 * BaroStep) * (long)ExpandBaro - 4; // wird in fc.c aufgerufen |
371 | // ExpandBaroStep = (16 * BaroStep) * (long)ExpandBaro - 4; // wird in fc.c aufgerufen |
373 | Luftdruck = (7 * Luftdruck + tmpLuftdruck - ExpandBaroStep) / 8; // -523.19 counts per 10 counts offset step |
372 | Luftdruck = (7 * Luftdruck + tmpLuftdruck - ExpandBaroStep) / 8; // -523.19 counts per 10 counts offset step |
374 | HoehenWert = StartLuftdruck - Luftdruck; |
373 | HoehenWert_Mess = StartLuftdruck - Luftdruck; |
375 | SummenHoehe -= SummenHoehe/SM_FILTER; |
374 | SummenHoehe -= SummenHoehe/SM_FILTER; |
376 | SummenHoehe += HoehenWert; |
375 | SummenHoehe += HoehenWert_Mess; |
377 | tmp = (HoehenWert - SummenHoehe/SM_FILTER); |
376 | tmp = (HoehenWert_Mess - SummenHoehe/SM_FILTER); |
378 | if(tmp > 1024) tmp = 1024; else if(tmp < -1024) tmp = -1024; |
377 | if(tmp > 1024) tmp = 1024; else if(tmp < -1024) tmp = -1024; |
379 | if(abs(VarioMeter) > 700) VarioMeter = (15 * VarioMeter + 8 * tmp)/16; |
378 | if(abs(VarioMeter) > 700) VarioMeter = (15 * VarioMeter + 8 * tmp)/16; |
380 | else VarioMeter = (31 * VarioMeter + 8 * tmp)/32; |
379 | else VarioMeter = (31 * VarioMeter + 8 * tmp)/32; |
381 | tmpLuftdruck /= 2; |
380 | tmpLuftdruck /= 2; |
382 | messanzahl_Druck = 16/2; |
381 | messanzahl_Druck = 16/2; |