Subversion Repositories FlightCtrl

Rev

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

Rev 238 Rev 251
Line 626... Line 626...
626
 ANALOG_ON;     // ADC einschalten
626
 ANALOG_ON;     // ADC einschalten
Line 627... Line 627...
627
 
627
 
628
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
628
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
629
//  Kompass
629
//  Kompass
630
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
-
 
631
 //KompassValue = 12;
630
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
632
    if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV))
631
    if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV))
633
     {
-
 
634
       int w,v;
-
 
635
       static int SignalSchlecht = 0;
-
 
636
       w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
-
 
637
       v = abs(IntegralRoll /512);
-
 
638
       if(v > w) w = v; // grösste Neigung ermitteln
632
     {
639
       if(w < 25 && NeueKompassRichtungMerken && !SignalSchlecht)    
633
       if(NeueKompassRichtungMerken)    
640
        {
634
        {
641
         KompassStartwert = KompassValue;
635
         KompassStartwert = KompassValue;
642
         NeueKompassRichtungMerken = 0;
636
         NeueKompassRichtungMerken = 0;
643
        }
-
 
644
       w = (w * Parameter_KompassWirkung) / 64;           // auf die Wirkung normieren
-
 
645
       w = Parameter_KompassWirkung - w;                  // Wirkung ggf drosseln
-
 
646
       if(w > 0)
-
 
647
        {
637
        }
648
          ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
638
       ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
649
          if(!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32;  // nach Kompass ausrichten
639
       Mess_Integral_Gier -= (KompassRichtung * Parameter_KompassWirkung) / 32;  // nach Kompass ausrichten
650
          ANALOG_ON;  // ADC einschalten
-
 
651
          if(SignalSchlecht) SignalSchlecht--;
-
 
652
        }  
-
 
653
        else SignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek
640
       ANALOG_ON;  // ADC einschalten
654
     }
641
     }
655
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
642
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
Line 656... Line 643...
656
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
643
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
Line 671... Line 658...
671
    DebugOut.Analog[3] = Mittelwert_AccRoll;
658
    DebugOut.Analog[3] = Mittelwert_AccRoll;
672
    DebugOut.Analog[4] = MesswertGier;
659
    DebugOut.Analog[4] = MesswertGier;
673
    DebugOut.Analog[5] = HoehenWert;
660
    DebugOut.Analog[5] = HoehenWert;
674
    DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);
661
    DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);
675
    DebugOut.Analog[7] = GasMischanteil;
662
    DebugOut.Analog[7] = GasMischanteil;
676
//    DebugOut.Analog[8] = KompassValue;
663
    DebugOut.Analog[8] = KompassValue;
Line 677... Line 664...
677
       
664
       
678
DebugOut.Analog[8] = MM3_heading();
665
//DebugOut.Analog[8] = MM3_heading();
679
DebugOut.Analog[9] = MM3.x_axis;
666
DebugOut.Analog[9] = MM3.x_axis;
680
DebugOut.Analog[10] = MM3.y_axis;
667
DebugOut.Analog[10] = MM3.y_axis;
Line 681... Line 668...
681
DebugOut.Analog[11] = MM3.z_axis;
668
DebugOut.Analog[11] = MM3.z_axis;