Rev 1715 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1715 | Rev 1716 | ||
---|---|---|---|
Line 156... | Line 156... | ||
156 | volatile unsigned char FCFlags = 0; |
156 | volatile unsigned char FCFlags = 0; |
157 | long GIER_GRAD_FAKTOR = 1291; |
157 | long GIER_GRAD_FAKTOR = 1291; |
158 | signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
158 | signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
159 | signed int tmp_motorwert[MAX_MOTORS]; |
159 | signed int tmp_motorwert[MAX_MOTORS]; |
160 | char VarioCharacter = ' '; |
160 | char VarioCharacter = ' '; |
- | 161 | int horizontalGas = K_GIER, horizontalNick = K_ROLL; // by Znib |
|
Line 161... | Line 162... | ||
161 | 162 | ||
162 | #define LIMIT_MIN(value, min) {if(value <= min) value = min;} |
163 | #define LIMIT_MIN(value, min) {if(value <= min) value = min;} |
163 | #define LIMIT_MAX(value, max) {if(value >= max) value = max;} |
164 | #define LIMIT_MAX(value, max) {if(value >= max) value = max;} |
Line 588... | Line 589... | ||
588 | CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability); |
589 | CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability); |
589 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl); |
590 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl); |
590 | Ki = 10300 / (Parameter_I_Faktor + 1); |
591 | Ki = 10300 / (Parameter_I_Faktor + 1); |
591 | MAX_GAS = EE_Parameter.Gas_Max; |
592 | MAX_GAS = EE_Parameter.Gas_Max; |
592 | MIN_GAS = EE_Parameter.Gas_Min; |
593 | MIN_GAS = EE_Parameter.Gas_Min; |
593 | 594 | ||
- | 595 | // by Znib |
|
- | 596 | if (Parameter_UserParam1 == 1 || Parameter_UserParam1 == 4) |
|
- | 597 | { |
|
- | 598 | // mode 1 oder 4 |
|
- | 599 | horizontalGas = K_ROLL; |
|
- | 600 | horizontalNick = K_GIER; |
|
- | 601 | } |
|
- | 602 | else |
|
- | 603 | { |
|
- | 604 | horizontalGas = K_GIER; |
|
- | 605 | horizontalNick = K_ROLL; |
|
- | 606 | } |
|
- | 607 | ||
594 | tmp = EE_Parameter.OrientationModeControl; |
608 | tmp = EE_Parameter.OrientationModeControl; |
595 | if(tmp > 50) |
609 | if(tmp > 50) |
596 | { |
610 | { |
597 | #ifdef SWITCH_LEARNS_CAREFREE |
611 | #ifdef SWITCH_LEARNS_CAREFREE |
598 | if(!CareFree) ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2; |
612 | if(!CareFree) ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2; |
Line 690... | Line 704... | ||
690 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
704 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
691 | { |
705 | { |
692 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
706 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
693 | // auf Nullwerte kalibrieren |
707 | // auf Nullwerte kalibrieren |
694 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
708 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
695 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) // Neutralwerte |
709 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] > 75) // Neutralwerte |
696 | { |
710 | { |
697 | if(++delay_neutral > 200) // nicht sofort |
711 | if(++delay_neutral > 200) // nicht sofort |
698 | { |
712 | { |
699 | GRN_OFF; |
713 | GRN_OFF; |
700 | MotorenEin = 0; |
714 | MotorenEin = 0; |
701 | delay_neutral = 0; |
715 | delay_neutral = 0; |
702 | modell_fliegt = 0; |
716 | modell_fliegt = 0; |
703 | if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70) |
717 | if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]]) > 70) |
704 | { |
718 | { |
705 | unsigned char setting=1; |
719 | unsigned char setting=1; |
706 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
720 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
707 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
721 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
708 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
722 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
709 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
723 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
710 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
724 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
711 | SetActiveParamSet(setting); // aktiven Datensatz merken |
725 | SetActiveParamSet(setting); // aktiven Datensatz merken |
712 | } |
726 | } |
713 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
727 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
714 | { |
728 | { |
715 | WinkelOut.CalcState = 1; |
729 | WinkelOut.CalcState = 1; |
716 | beeptime = 1000; |
730 | beeptime = 1000; |
717 | } |
731 | } |
718 | else |
732 | else |
Line 732... | Line 746... | ||
732 | Piep(GetActiveParamSet(),120); |
746 | Piep(GetActiveParamSet(),120); |
733 | } |
747 | } |
734 | } |
748 | } |
735 | } |
749 | } |
736 | else |
750 | else |
737 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern |
751 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] < -75) // ACC Neutralwerte speichern |
738 | { |
752 | { |
739 | if(++delay_neutral > 200) // nicht sofort |
753 | if(++delay_neutral > 200) // nicht sofort |
740 | { |
754 | { |
741 | GRN_OFF; |
755 | GRN_OFF; |
742 | MotorenEin = 0; |
756 | MotorenEin = 0; |
Line 755... | Line 769... | ||
755 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
769 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
756 | { |
770 | { |
757 | // Motoren Starten |
771 | // Motoren Starten |
758 | if(!MotorenEin) |
772 | if(!MotorenEin) |
759 | { |
773 | { |
760 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) |
774 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] < -75) |
761 | { |
775 | { |
762 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
776 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
763 | // Einschalten |
777 | // Einschalten |
764 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
778 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
765 | if(++delay_einschalten > 200) |
779 | if(++delay_einschalten > 200) |
Line 792... | Line 806... | ||
792 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
806 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
793 | // Auschalten |
807 | // Auschalten |
794 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
808 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
795 | else // only if motors are running |
809 | else // only if motors are running |
796 | { |
810 | { |
797 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) |
811 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] > 75) |
798 | { |
812 | { |
799 | if(++delay_ausschalten > 200) // nicht sofort |
813 | if(++delay_ausschalten > 200) // nicht sofort |
800 | { |
814 | { |
801 | MotorenEin = 0; |
815 | MotorenEin = 0; |
802 | delay_ausschalten = 0; |
816 | delay_ausschalten = 0; |