Rev 1793 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1793 | Rev 1803 | ||
---|---|---|---|
Line 157... | Line 157... | ||
157 | volatile unsigned char FC_StatusFlags = 0; |
157 | volatile unsigned char FC_StatusFlags = 0; |
158 | long GIER_GRAD_FAKTOR = 1291; |
158 | long GIER_GRAD_FAKTOR = 1291; |
159 | signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
159 | signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
160 | signed int tmp_motorwert[MAX_MOTORS]; |
160 | signed int tmp_motorwert[MAX_MOTORS]; |
161 | char VarioCharacter = ' '; |
161 | char VarioCharacter = ' '; |
- | 162 | int horizontalGas = K_GIER, horizontalNick = K_ROLL; // by Znib |
|
Line 162... | Line 163... | ||
162 | 163 | ||
163 | #define LIMIT_MIN(value, min) {if(value <= min) value = min;} |
164 | #define LIMIT_MIN(value, min) {if(value <= min) value = min;} |
164 | #define LIMIT_MAX(value, max) {if(value >= max) value = max;} |
165 | #define LIMIT_MAX(value, max) {if(value >= max) value = max;} |
Line 601... | Line 602... | ||
601 | CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability); |
602 | CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability); |
602 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl); |
603 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl); |
603 | Ki = 10300 / (Parameter_I_Faktor + 1); |
604 | Ki = 10300 / (Parameter_I_Faktor + 1); |
604 | MAX_GAS = EE_Parameter.Gas_Max; |
605 | MAX_GAS = EE_Parameter.Gas_Max; |
605 | MIN_GAS = EE_Parameter.Gas_Min; |
606 | MIN_GAS = EE_Parameter.Gas_Min; |
606 | 607 | ||
- | 608 | // by Znib |
|
- | 609 | if (Parameter_UserParam1 == 1 || Parameter_UserParam1 == 4) |
|
- | 610 | { |
|
- | 611 | // mode 1 oder 4 |
|
- | 612 | horizontalGas = K_ROLL; |
|
- | 613 | horizontalNick = K_GIER; |
|
- | 614 | } |
|
- | 615 | else |
|
- | 616 | { |
|
- | 617 | horizontalGas = K_GIER; |
|
- | 618 | horizontalNick = K_ROLL; |
|
- | 619 | } |
|
- | 620 | ||
607 | tmp = EE_Parameter.OrientationModeControl; |
621 | tmp = EE_Parameter.OrientationModeControl; |
608 | if(tmp > 50) |
622 | if(tmp > 50) |
609 | { |
623 | { |
610 | #ifdef SWITCH_LEARNS_CAREFREE |
624 | #ifdef SWITCH_LEARNS_CAREFREE |
611 | if(!CareFree) ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2; |
625 | if(!CareFree) ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2; |
Line 703... | Line 717... | ||
703 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
717 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
704 | { |
718 | { |
705 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
719 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
706 | // auf Nullwerte kalibrieren |
720 | // auf Nullwerte kalibrieren |
707 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
721 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
708 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) // Neutralwerte |
722 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] > 75) // Neutralwerte |
709 | { |
723 | { |
710 | if(++delay_neutral > 200) // nicht sofort |
724 | if(++delay_neutral > 200) // nicht sofort |
711 | { |
725 | { |
712 | GRN_OFF; |
726 | GRN_OFF; |
713 | MotorenEin = 0; |
727 | MotorenEin = 0; |
714 | delay_neutral = 0; |
728 | delay_neutral = 0; |
715 | modell_fliegt = 0; |
729 | modell_fliegt = 0; |
716 | if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70) |
730 | if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]]) > 70) |
717 | { |
731 | { |
718 | unsigned char setting=1; |
732 | unsigned char setting=1; |
719 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
733 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
720 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
734 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
721 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
735 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
722 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
736 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
723 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
737 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
724 | SetActiveParamSet(setting); // aktiven Datensatz merken |
738 | SetActiveParamSet(setting); // aktiven Datensatz merken |
725 | } |
739 | } |
726 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
740 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
727 | { |
741 | { |
728 | WinkelOut.CalcState = 1; |
742 | WinkelOut.CalcState = 1; |
729 | beeptime = 1000; |
743 | beeptime = 1000; |
730 | } |
744 | } |
731 | else |
745 | else |
Line 745... | Line 759... | ||
745 | Piep(GetActiveParamSet(),120); |
759 | Piep(GetActiveParamSet(),120); |
746 | } |
760 | } |
747 | } |
761 | } |
748 | } |
762 | } |
749 | else |
763 | else |
750 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern |
764 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] < -75) // ACC Neutralwerte speichern |
751 | { |
765 | { |
752 | if(++delay_neutral > 200) // nicht sofort |
766 | if(++delay_neutral > 200) // nicht sofort |
753 | { |
767 | { |
754 | GRN_OFF; |
768 | GRN_OFF; |
755 | MotorenEin = 0; |
769 | MotorenEin = 0; |
Line 769... | Line 783... | ||
769 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
783 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
770 | { |
784 | { |
771 | // Motoren Starten |
785 | // Motoren Starten |
772 | if(!MotorenEin) |
786 | if(!MotorenEin) |
773 | { |
787 | { |
774 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0)) |
788 | if((PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] < -75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0)) |
775 | { |
789 | { |
776 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
790 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
777 | // Einschalten |
791 | // Einschalten |
778 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
792 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
779 | if(++delay_einschalten > 200) |
793 | if(++delay_einschalten > 200) |
Line 806... | Line 820... | ||
806 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
820 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
807 | // Auschalten |
821 | // Auschalten |
808 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
822 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
809 | else // only if motors are running |
823 | else // only if motors are running |
810 | { |
824 | { |
811 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0)) |
825 | if((PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0)) |
812 | { |
826 | { |
813 | if(++delay_ausschalten > 200) // nicht sofort |
827 | if(++delay_ausschalten > 200) // nicht sofort |
814 | { |
828 | { |
815 | MotorenEin = 0; |
829 | MotorenEin = 0; |
816 | delay_ausschalten = 0; |
830 | delay_ausschalten = 0; |