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 |