Subversion Repositories FlightCtrl

Rev

Rev 378 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 378 Rev 391
Line 651... Line 651...
651
 ANALOG_ON;     // ADC einschalten
651
 ANALOG_ON;     // ADC einschalten
Line 652... Line 652...
652
 
652
 
653
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
653
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
654
//  Kompass
654
//  Kompass
655
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
655
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
656
    if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV))
656
    if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
-
 
657
     {
-
 
658
       int w,v;
-
 
659
       static int SignalSchlecht = 0;
-
 
660
       w = abs(IntegralNick /1024); // mit zunehmender Neigung den Einfluss drosseln
-
 
661
       v = abs(IntegralRoll /1024);
657
     {
662
       if(v > w) w = v; // grösste Neigung ermitteln
658
       if(NeueKompassRichtungMerken)    
663
       if(w < 35 && NeueKompassRichtungMerken && !SignalSchlecht)    
659
        {
664
        {
660
         KompassStartwert = KompassValue;
665
         KompassStartwert = KompassValue;
661
         NeueKompassRichtungMerken = 0;
666
         NeueKompassRichtungMerken = 0;
-
 
667
        }
-
 
668
       w = (w * Parameter_KompassWirkung) / 64;           // auf die Wirkung normieren
-
 
669
       w = Parameter_KompassWirkung - w;                  // Wirkung ggf drosseln
-
 
670
       if(w > 0)
662
        }
671
        {
663
       ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
672
          ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
664
       Mess_Integral_Gier -= (KompassRichtung * Parameter_KompassWirkung) / 32;  // nach Kompass ausrichten
673
          if(!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32;  // nach Kompass ausrichten
-
 
674
          ANALOG_ON;  // ADC einschalten
-
 
675
          if(SignalSchlecht) SignalSchlecht--;
-
 
676
        }  
665
       ANALOG_ON;  // ADC einschalten
677
        else SignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek
666
     }
678
     }
667
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
679
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
Line 668... Line 680...
668
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
680
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
669
 
681
 
Line 675... Line 687...
675
   {
687
   {
676
    TimerWerteausgabe = 49;
688
    TimerWerteausgabe = 49;
677
//    DebugOut.Analog[0] = MesswertNick;
689
//    DebugOut.Analog[0] = MesswertNick;
678
//    DebugOut.Analog[1] = MesswertRoll;
690
//    DebugOut.Analog[1] = MesswertRoll;
679
//    DebugOut.Analog[2] = MesswertGier;
691
//    DebugOut.Analog[2] = MesswertGier;
680
//    DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor;
692
    DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor;
681
//    DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor;
693
    DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor;
Line 682... Line 694...
682
 
694
 
683
    DebugOut.Analog[0] = MM3.NickGrad;
695
//    DebugOut.Analog[0] = MM3.NickGrad;
684
    DebugOut.Analog[1] = MM3.RollGrad;
696
//    DebugOut.Analog[1] = MM3.RollGrad;
685
    DebugOut.Analog[2] = Mittelwert_AccNick;
697
    DebugOut.Analog[2] = Mittelwert_AccNick;
686
    DebugOut.Analog[3] = Mittelwert_AccRoll;
698
    DebugOut.Analog[3] = Mittelwert_AccRoll;
687
    DebugOut.Analog[4] = MesswertGier;
699
    DebugOut.Analog[4] = MesswertGier;
688
    DebugOut.Analog[5] = HoehenWert;
700
    DebugOut.Analog[5] = HoehenWert;