Subversion Repositories FlightCtrl

Rev

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

Rev 433 Rev 455
Line 69... Line 69...
69
volatile long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
69
volatile long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
70
volatile long Mess_Integral_Hoch = 0;
70
volatile long Mess_Integral_Hoch = 0;
71
volatile int  KompassValue = 0;
71
volatile int  KompassValue = 0;
72
volatile int  KompassStartwert = 0;
72
volatile int  KompassStartwert = 0;
73
volatile int  KompassRichtung = 0;
73
volatile int  KompassRichtung = 0;
-
 
74
uint8_t updKompass = 0;
74
unsigned char MAX_GAS,MIN_GAS;
75
unsigned char MAX_GAS,MIN_GAS;
75
unsigned char Notlandung = 0;
76
unsigned char Notlandung = 0;
76
unsigned char HoehenReglerAktiv = 0;
77
unsigned char HoehenReglerAktiv = 0;
Line 77... Line 78...
77
 
78
 
Line 654... Line 655...
654
//  Kompass
655
//  Kompass
655
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
656
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
656
    if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
657
    if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
657
     {
658
     {
658
       int w,v;
659
       int w,v;
659
       static int SignalSchlecht = 0;
660
       static uint8_t SignalSchlecht = 0;
-
 
661
 
-
 
662
                if (!updKompass--)              // Aufruf mit ~10 Hz
-
 
663
                {
-
 
664
                        KompassValue = heading_MM3();
-
 
665
                        KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
-
 
666
                        updKompass = 50;
-
 
667
                }
-
 
668
 
660
       w = abs(IntegralNick /1024); // mit zunehmender Neigung den Einfluss drosseln
669
       w = abs(IntegralNick /1024); // mit zunehmender Neigung den Einfluss drosseln
661
       v = abs(IntegralRoll /1024);
670
       v = abs(IntegralRoll /1024);
662
       if(v > w) w = v; // grösste Neigung ermitteln
671
       if(v > w) w = v; // grösste Neigung ermitteln
663
       if(w < 35 && NeueKompassRichtungMerken && !SignalSchlecht)    
672
       if(w < 35 && NeueKompassRichtungMerken && !SignalSchlecht)    
664
        {
673
        {
Line 672... Line 681...
672
          ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
681
          ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern
673
          if(!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32;  // nach Kompass ausrichten
682
          if(!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32;  // nach Kompass ausrichten
674
          ANALOG_ON;  // ADC einschalten
683
          ANALOG_ON;  // ADC einschalten
675
          if(SignalSchlecht) SignalSchlecht--;
684
          if(SignalSchlecht) SignalSchlecht--;
676
        }  
685
        }  
677
        else SignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek
686
        else SignalSchlecht = 250; // so lange das Signal taub stellen --> ca. 1/2 sek
678
     }
687
     }
679
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
688
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
680
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
689
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
Line 681... Line 690...
681
 
690