Subversion Repositories FlightCtrl

Rev

Rev 892 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 892 Rev 893
Line 346... Line 346...
346
//############################################################################
346
//############################################################################
347
// Messwerte beim Ermitteln der Nullage
347
// Messwerte beim Ermitteln der Nullage
348
void CalibrierMittelwert(void)
348
void CalibrierMittelwert(void)
349
//############################################################################
349
//############################################################################
350
{                
350
{                
351
    // IRQ auschalten, damit die Werte sich nicht während der Berechnung ändern
351
    // ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
352
        uint8_t temp_sreg = SREG;
-
 
353
        cli();
352
        ANALOG_OFF;
354
         MesswertNick = AdWertNick;
353
         MesswertNick = AdWertNick;
355
         MesswertRoll = AdWertRoll;
354
         MesswertRoll = AdWertRoll;
356
         MesswertGier = AdWertGier;
355
         MesswertGier = AdWertGier;
357
         Mittelwert_AccNick = ACC_AMPLIFY * (long)AdWertAccNick;
356
         Mittelwert_AccNick = ACC_AMPLIFY * (long)AdWertAccNick;
358
         Mittelwert_AccRoll = ACC_AMPLIFY * (long)AdWertAccRoll;
357
         Mittelwert_AccRoll = ACC_AMPLIFY * (long)AdWertAccRoll;
359
         Mittelwert_AccHoch = (long)AdWertAccHoch;
358
         Mittelwert_AccHoch = (long)AdWertAccHoch;
360
    // IRQ einschalten
359
    // ADC einschalten
361
    SREG = temp_sreg;
360
    ANALOG_ON;
Line 362... Line 361...
362
       
361
       
363
    if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 128 && Poti1 < 255) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 128 && Poti1 > 0) Poti1--;
362
    if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 128 && Poti1 < 255) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 128 && Poti1 > 0) Poti1--;
364
    if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 128 && Poti2 < 255) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 128 && Poti2 > 0) Poti2--;
363
    if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 128 && Poti2 < 255) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 128 && Poti2 > 0) Poti2--;
365
    if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 128 && Poti3 < 255) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 128 && Poti3 > 0) Poti3--;
364
    if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 128 && Poti3 < 255) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 128 && Poti3 > 0) Poti3--;
Line 1049... Line 1048...
1049
   {
1048
   {
1050
    TimerWerteausgabe = 24;
1049
    TimerWerteausgabe = 24;
Line 1051... Line 1050...
1051
 
1050
 
1052
    DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor;
1051
    DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor;
1053
    DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor;
1052
    DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor;
1054
    DebugOut.Analog[2] = Mittelwert_AccNick;
-
 
1055
       
1053
    DebugOut.Analog[2] = Mittelwert_AccNick;   
1056
    DebugOut.Analog[3] = Mittelwert_AccRoll;
1054
    DebugOut.Analog[3] = Mittelwert_AccRoll;
1057
    DebugOut.Analog[4] = MesswertGier;
1055
    DebugOut.Analog[4] = MesswertGier;
1058
    DebugOut.Analog[5] = HoehenWert;
1056
    DebugOut.Analog[5] = HoehenWert;
1059
    DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);
1057
    DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);