Subversion Repositories FlightCtrl

Rev

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;