Subversion Repositories FlightCtrl

Rev

Rev 2426 | Rev 2492 | Go to most recent revision | Show entire file | Ignore 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;