Rev 238 | 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; |