Rev 1880 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1880 | Rev 1882 | ||
---|---|---|---|
Line 164... | Line 164... | ||
164 | volatile unsigned char FC_StatusFlags = 0, FC_StatusFlags2 = 0; |
164 | volatile unsigned char FC_StatusFlags = 0, FC_StatusFlags2 = 0; |
165 | long GIER_GRAD_FAKTOR = 1291; |
165 | long GIER_GRAD_FAKTOR = 1291; |
166 | signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
166 | signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
167 | signed int tmp_motorwert[MAX_MOTORS]; |
167 | signed int tmp_motorwert[MAX_MOTORS]; |
168 | char VarioCharacter = ' '; |
168 | char VarioCharacter = ' '; |
- | 169 | int horizontalGas = K_GIER, horizontalNick = K_ROLL; // by Znib |
|
Line 169... | Line 170... | ||
169 | 170 | ||
170 | #define LIMIT_MIN(value, min) {if(value <= min) value = min;} |
171 | #define LIMIT_MIN(value, min) {if(value <= min) value = min;} |
171 | #define LIMIT_MAX(value, max) {if(value >= max) value = max;} |
172 | #define LIMIT_MAX(value, max) {if(value >= max) value = max;} |
Line 609... | Line 610... | ||
609 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl); |
610 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl); |
610 | Ki = 10300 / (Parameter_I_Faktor + 1); |
611 | Ki = 10300 / (Parameter_I_Faktor + 1); |
611 | MAX_GAS = EE_Parameter.Gas_Max; |
612 | MAX_GAS = EE_Parameter.Gas_Max; |
612 | MIN_GAS = EE_Parameter.Gas_Min; |
613 | MIN_GAS = EE_Parameter.Gas_Min; |
Line -... | Line 614... | ||
- | 614 | ||
- | 615 | // by Znib |
|
- | 616 | if (Parameter_UserParam1 == 1 || Parameter_UserParam1 == 4) |
|
- | 617 | { |
|
- | 618 | // mode 1 oder 4 |
|
- | 619 | horizontalGas = K_ROLL; |
|
- | 620 | horizontalNick = K_GIER; |
|
- | 621 | } |
|
- | 622 | else |
|
- | 623 | { |
|
- | 624 | horizontalGas = K_GIER; |
|
- | 625 | horizontalNick = K_ROLL; |
|
- | 626 | } |
|
613 | 627 | ||
614 | tmp = EE_Parameter.OrientationModeControl; |
628 | tmp = EE_Parameter.OrientationModeControl; |
615 | if(tmp > 50) |
629 | if(tmp > 50) |
616 | { |
630 | { |
617 | #ifdef SWITCH_LEARNS_CAREFREE |
631 | #ifdef SWITCH_LEARNS_CAREFREE |
Line 718... | Line 732... | ||
718 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
732 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
719 | { |
733 | { |
720 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
734 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
721 | // auf Nullwerte kalibrieren |
735 | // auf Nullwerte kalibrieren |
722 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
736 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
723 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) // Neutralwerte |
737 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] > 75) // Neutralwerte |
724 | { |
738 | { |
725 | if(++delay_neutral > 200) // nicht sofort |
739 | if(++delay_neutral > 200) // nicht sofort |
726 | { |
740 | { |
727 | GRN_OFF; |
741 | GRN_OFF; |
728 | MotorenEin = 0; |
742 | MotorenEin = 0; |
729 | delay_neutral = 0; |
743 | delay_neutral = 0; |
730 | modell_fliegt = 0; |
744 | modell_fliegt = 0; |
731 | if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70) |
745 | if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]]) > 70) |
732 | { |
746 | { |
733 | unsigned char setting=1; |
747 | unsigned char setting=1; |
734 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
748 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
735 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
749 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
736 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
750 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
737 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
751 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
738 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
752 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
739 | SetActiveParamSet(setting); // aktiven Datensatz merken |
753 | SetActiveParamSet(setting); // aktiven Datensatz merken |
740 | } |
754 | } |
741 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
755 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
742 | { |
756 | { |
743 | WinkelOut.CalcState = 1; |
757 | WinkelOut.CalcState = 1; |
744 | beeptime = 1000; |
758 | beeptime = 1000; |
745 | } |
759 | } |
746 | else |
760 | else |
Line 760... | Line 774... | ||
760 | Piep(GetActiveParamSet(),120); |
774 | Piep(GetActiveParamSet(),120); |
761 | } |
775 | } |
762 | } |
776 | } |
763 | } |
777 | } |
764 | else |
778 | else |
765 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern |
779 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] < -75) // ACC Neutralwerte speichern |
766 | { |
780 | { |
767 | if(++delay_neutral > 200) // nicht sofort |
781 | if(++delay_neutral > 200) // nicht sofort |
768 | { |
782 | { |
769 | GRN_OFF; |
783 | GRN_OFF; |
770 | MotorenEin = 0; |
784 | MotorenEin = 0; |
Line 784... | Line 798... | ||
784 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
798 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
785 | { |
799 | { |
786 | // Motoren Starten |
800 | // Motoren Starten |
787 | if(!MotorenEin) |
801 | if(!MotorenEin) |
788 | { |
802 | { |
789 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0)) |
803 | if((PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] < -75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0)) |
790 | { |
804 | { |
791 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
805 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
792 | // Einschalten |
806 | // Einschalten |
793 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
807 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
794 | if(++delay_einschalten > 200) |
808 | if(++delay_einschalten > 200) |
Line 822... | Line 836... | ||
822 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
836 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
823 | // Auschalten |
837 | // Auschalten |
824 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
838 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
825 | else // only if motors are running |
839 | else // only if motors are running |
826 | { |
840 | { |
827 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0)) |
841 | if((PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0)) |
828 | { |
842 | { |
829 | if(++delay_ausschalten > 200) // nicht sofort |
843 | if(++delay_ausschalten > 200) // nicht sofort |
830 | { |
844 | { |
831 | MotorenEin = 0; |
845 | MotorenEin = 0; |
832 | delay_ausschalten = 0; |
846 | delay_ausschalten = 0; |