Rev 104 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 104 | Rev 106 | ||
---|---|---|---|
Line 73... | Line 73... | ||
73 | volatile int KompassStartwert = 0; |
73 | volatile int KompassStartwert = 0; |
74 | volatile int KompassRichtung = 0; |
74 | volatile int KompassRichtung = 0; |
75 | unsigned char MAX_GAS,MIN_GAS; |
75 | unsigned char MAX_GAS,MIN_GAS; |
76 | unsigned char Notlandung = 0; |
76 | unsigned char Notlandung = 0; |
77 | unsigned char HoehenReglerAktiv = 0; |
77 | unsigned char HoehenReglerAktiv = 0; |
- | 78 | static int SignalSchlecht = 0; |
|
Line 78... | Line 79... | ||
78 | 79 | ||
79 | float GyroFaktor; |
80 | float GyroFaktor; |
Line 80... | Line 81... | ||
80 | float IntegralFaktor; |
81 | float IntegralFaktor; |
Line 593... | Line 594... | ||
593 | ZaehlMessungen = 0; |
594 | ZaehlMessungen = 0; |
594 | if(IntegralFehlerNick > 500/DRIFT_FAKTOR) AdNeutralNick++; |
595 | if(IntegralFehlerNick > 500/DRIFT_FAKTOR) AdNeutralNick++; |
595 | if(IntegralFehlerNick < -500/DRIFT_FAKTOR) AdNeutralNick--; |
596 | if(IntegralFehlerNick < -500/DRIFT_FAKTOR) AdNeutralNick--; |
596 | if(IntegralFehlerRoll > 500/DRIFT_FAKTOR) AdNeutralRoll++; |
597 | if(IntegralFehlerRoll > 500/DRIFT_FAKTOR) AdNeutralRoll++; |
597 | if(IntegralFehlerRoll < -500/DRIFT_FAKTOR) AdNeutralRoll--; |
598 | if(IntegralFehlerRoll < -500/DRIFT_FAKTOR) AdNeutralRoll--; |
- | 599 | //Salvo 31.8.2007 Abgleich Giergyro nur wenn Kompass aktiv und ok ist *********************** |
|
- | 600 | if (CFG_KOMPASS_FIX && (!SignalSchlecht)) |
|
- | 601 | { |
|
598 | if(Mess_Integral_Gier2 > 500/DRIFT_FAKTOR) AdNeutralGier--; |
602 | if(Mess_Integral_Gier2 > 500/DRIFT_FAKTOR) AdNeutralGier--; |
599 | if(Mess_Integral_Gier2 <-500/DRIFT_FAKTOR) AdNeutralGier++; |
603 | if(Mess_Integral_Gier2 <-500/DRIFT_FAKTOR) AdNeutralGier++; |
- | 604 | } |
|
- | 605 | else |
|
- | 606 | { |
|
- | 607 | Mess_Integral_Gier2 = 0; |
|
- | 608 | } |
|
- | 609 | ||
- | 610 | // Salvo End *********************** |
|
600 | ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern |
611 | ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern |
601 | Mess_IntegralNick2 = IntegralNick; |
612 | Mess_IntegralNick2 = IntegralNick; |
602 | Mess_IntegralRoll2 = IntegralRoll; |
613 | Mess_IntegralRoll2 = IntegralRoll; |
603 | Mess_Integral_Gier2 = Integral_Gier; |
614 | Mess_Integral_Gier2 = Integral_Gier; |
604 | ANALOG_ON; // ADC einschalten |
615 | ANALOG_ON; // ADC einschalten |
Line 638... | Line 649... | ||
638 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
649 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
639 | //KompassValue = 12; |
650 | //KompassValue = 12; |
640 | if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)) |
651 | if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)) |
641 | { |
652 | { |
642 | int w,v; |
653 | int w,v; |
643 | static int SignalSchlecht = 0; |
- | |
644 | w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
654 | w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
645 | v = abs(IntegralRoll /512); |
655 | v = abs(IntegralRoll /512); |
646 | if(v > w) w = v; // grösste Neigung ermitteln |
656 | if(v > w) w = v; // grösste Neigung ermitteln |
647 | if(w < 25 && NeueKompassRichtungMerken && !SignalSchlecht) |
657 | if(w < 25 && NeueKompassRichtungMerken && !SignalSchlecht) |
648 | { |
658 | { |
Line 690... | Line 700... | ||
690 | DebugOut.Analog[4] = MesswertGier; |
700 | DebugOut.Analog[4] = MesswertGier; |
691 | DebugOut.Analog[5] = HoehenWert; |
701 | DebugOut.Analog[5] = HoehenWert; |
692 | DebugOut.Analog[6] = (Mess_Integral_Hoch / 512); |
702 | DebugOut.Analog[6] = (Mess_Integral_Hoch / 512); |
693 | DebugOut.Analog[7] = GasMischanteil; |
703 | DebugOut.Analog[7] = GasMischanteil; |
694 | DebugOut.Analog[8] = KompassValue; |
704 | DebugOut.Analog[8] = KompassValue; |
- | 705 | DebugOut.Analog[9] = Mess_Integral_Gier2; |
|
695 | // DebugOut.Analog[9] = SollHoehe; |
706 | // DebugOut.Analog[9] = SollHoehe; |
696 | // DebugOut.Analog[10] = Mess_Integral_Gier / 128; |
707 | // DebugOut.Analog[10] = Mess_Integral_Gier / 128; |
697 | // DebugOut.Analog[11] = KompassStartwert; |
708 | // DebugOut.Analog[11] = KompassStartwert; |
698 | // DebugOut.Analog[10] = Parameter_Gyro_I; |
709 | // DebugOut.Analog[10] = Parameter_Gyro_I; |
699 | // DebugOut.Analog[10] = EE_Parameter.Gyro_I; |
710 | // DebugOut.Analog[10] = EE_Parameter.Gyro_I; |