Subversion Repositories FlightCtrl

Rev

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

Rev 438 Rev 466
Line 70... Line 70...
70
volatile long Mess_IntegralNick = 0,Mess_IntegralNick2 = 0;
70
volatile long Mess_IntegralNick = 0,Mess_IntegralNick2 = 0;
71
volatile long Mess_IntegralRoll = 0,Mess_IntegralRoll2 = 0;
71
volatile long Mess_IntegralRoll = 0,Mess_IntegralRoll2 = 0;
72
volatile long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
72
volatile long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
73
volatile long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2;
73
volatile long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2;
74
volatile long Mess_Integral_Hoch = 0;
74
volatile long Mess_Integral_Hoch = 0;
75
volatile int  KompassValue = 0;
75
int  KompassValue = 0;
76
volatile int  KompassStartwert = 0;
76
int  KompassStartwert = 0;
77
volatile int  KompassRichtung = 0;
77
int  KompassRichtung = 0;
-
 
78
uint8_t updKompass = 0;
78
unsigned char MAX_GAS,MIN_GAS;
79
unsigned char MAX_GAS,MIN_GAS;
79
unsigned char Notlandung = 0;
80
unsigned char Notlandung = 0;
80
unsigned char HoehenReglerAktiv = 0;
81
unsigned char HoehenReglerAktiv = 0;
81
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
82
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
Line 394... Line 395...
394
         static unsigned char delay_neutral = 0;
395
         static unsigned char delay_neutral = 0;
395
         static unsigned char delay_einschalten = 0,delay_ausschalten = 0;
396
         static unsigned char delay_einschalten = 0,delay_ausschalten = 0;
396
         static unsigned int  modell_fliegt = 0;
397
         static unsigned int  modell_fliegt = 0;
397
     static int hoehenregler = 0;
398
     static int hoehenregler = 0;
398
     static char TimerWerteausgabe = 0;
399
     static char TimerWerteausgabe = 0;
399
     static char NeueKompassRichtungMerken = 0;
400
     static char NeueKompassRichtungMerken = 1;
400
     static long ausgleichNick, ausgleichRoll;
401
     static long ausgleichNick, ausgleichRoll;
Line 401... Line 402...
401
     
402
     
Line 402... Line 403...
402
        Mittelwert();
403
        Mittelwert();
Line 833... Line 834...
833
//  Kompass
834
//  Kompass
834
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
835
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
835
    if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
836
    if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
836
     {
837
     {
837
       int w,v;
838
       int w,v;
838
       static int SignalSchlecht = 0;
839
       static char SignalSchlecht = 0;
-
 
840
           
-
 
841
           if (!updKompass--)           // Aufruf mit ~10 Hz
-
 
842
                {
-
 
843
                        KompassValue = heading_MM3();
-
 
844
                        KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
-
 
845
                        updKompass = 50;
-
 
846
                }
-
 
847
 
839
       w = abs(IntegralNick /1024); // mit zunehmender Neigung den Einfluss drosseln
848
       w = abs(IntegralNick /1024); // mit zunehmender Neigung den Einfluss drosseln
840
       v = abs(IntegralRoll /1024);
849
       v = abs(IntegralRoll /1024);
841
       if(v > w) w = v; // grösste Neigung ermitteln
850
       if(v > w) w = v; // grösste Neigung ermitteln
842
       if(w < 35 && NeueKompassRichtungMerken && !SignalSchlecht)    
851
       if(w < 35 && NeueKompassRichtungMerken && !SignalSchlecht)    
843
        {
852
        {
Line 849... Line 858...
849
       if(w > 0)
858
       if(w > 0)
850
        {
859
        {
851
          if(!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32;  // nach Kompass ausrichten
860
          if(!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32;  // nach Kompass ausrichten
852
          if(SignalSchlecht) SignalSchlecht--;
861
          if(SignalSchlecht) SignalSchlecht--;
853
        }  
862
        }  
854
        else SignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek
863
        else SignalSchlecht = 250; // so lange das Signal taub stellen --> ca. 1/2 sek
855
     }
864
     }
856
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
865
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
Line 857... Line 866...
857
 
866
 
858
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
867
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++