Subversion Repositories FlightCtrl

Rev

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

Rev 204 Rev 267
Line 717... Line 717...
717
    ANALOG_ON;  // ADC einschalten
717
    ANALOG_ON;  // ADC einschalten
718
        }
718
        }
719
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
719
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
720
// Integrale auf ACC-Signal abgleichen
720
// Integrale auf ACC-Signal abgleichen
721
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
721
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
-
 
722
 
-
 
723
 
722
  if(IntegralFaktor && !Looping_Nick && !Looping_Roll)
724
  if(EE_Parameter.GlobalConfig & CFG_GPS_AKTIV)
723
  {
725
  {
724
    tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
726
     tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick) / 16;  
725
    if(labs(Mittelwert_AccNick) < 200) tmp_long /= 8;
-
 
726
    else tmp_long /= 16;
-
 
727
    tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
727
     tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll) / 16;  
728
    if(labs(Mittelwert_AccRoll) < 200) tmp_long2 /= 8;
-
 
729
    else tmp_long2 /= 16;
-
 
730
 
-
 
731
 #define AUSGLEICH 500
728
     #define AUSGLEICH 500
732
    if(tmp_long >  AUSGLEICH)  tmp_long  = AUSGLEICH;
729
     if(tmp_long >  AUSGLEICH)  tmp_long  = AUSGLEICH;
733
    if(tmp_long < -AUSGLEICH)  tmp_long  =-AUSGLEICH;
730
     if(tmp_long < -AUSGLEICH)  tmp_long  =-AUSGLEICH;
734
    if(tmp_long2 > AUSGLEICH)  tmp_long2 = AUSGLEICH;
731
     if(tmp_long2 > AUSGLEICH)  tmp_long2 = AUSGLEICH;
735
    if(tmp_long2 <-AUSGLEICH)  tmp_long2 =-AUSGLEICH;
732
     if(tmp_long2 <-AUSGLEICH)  tmp_long2 =-AUSGLEICH;
-
 
733
     ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
-
 
734
     Mess_IntegralNick -= tmp_long;
-
 
735
     Mess_IntegralRoll -= tmp_long2;
736
  }
736
  }
-
 
737
 
737
  else
738
  else
738
  {
739
  {    
-
 
740
     if(IntegralFaktor && !Looping_Nick && !Looping_Roll)
-
 
741
     {
-
 
742
      tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
-
 
743
      if(labs(Mittelwert_AccNick) < 200) tmp_long /= 8;
-
 
744
      else tmp_long /= 16;
-
 
745
      tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
-
 
746
      if(labs(Mittelwert_AccRoll) < 200) tmp_long2 /= 8;
-
 
747
      else tmp_long2 /= 16;
-
 
748
     
-
 
749
      #define AUSGLEICH 500
-
 
750
      if(tmp_long >  AUSGLEICH)  tmp_long  = AUSGLEICH;
-
 
751
      if(tmp_long < -AUSGLEICH)  tmp_long  =-AUSGLEICH;
-
 
752
      if(tmp_long2 > AUSGLEICH)  tmp_long2 = AUSGLEICH;
-
 
753
      if(tmp_long2 <-AUSGLEICH)  tmp_long2 =-AUSGLEICH;
-
 
754
         }
-
 
755
     
-
 
756
     else
-
 
757
     {
739
   tmp_long = 0;
758
      tmp_long = 0;
740
   tmp_long2 = 0;
759
      tmp_long2 = 0;
-
 
760
     }
-
 
761
     ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
-
 
762
     Mess_IntegralNick -= tmp_long;
-
 
763
     Mess_IntegralRoll -= tmp_long2;
741
  }
764
  }
742
 ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
-
 
743
    Mess_IntegralNick -= tmp_long;
-
 
744
    Mess_IntegralRoll -= tmp_long2;
-
 
745
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
765
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
746
//  Gieren
766
//  Gieren
747
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
767
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
748
    if(abs(StickGier) > 20) // war 35 
768
    if(abs(StickGier) > 20) // war 35 
749
     {
769
     {