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 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |