Subversion Repositories FlightCtrl

Rev

Rev 2334 | Rev 2341 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2334 Rev 2340
Line 785... Line 785...
785
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
785
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
786
// Emfang gut
786
// Emfang gut
787
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
787
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
788
        if(SenderOkay > 140)
788
        if(SenderOkay > 140)
789
            {
789
            {
-
 
790
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
790
                     static unsigned int trigger = 0;
791
                     static unsigned int trigger = 0;
-
 
792
                         static unsigned char old_switch = 100;
-
 
793
                        if(EE_Parameter.StartLandChannel && EE_Parameter.LandingSpeed)
-
 
794
                        {
-
 
795
                                if(PPM_in[EE_Parameter.StartLandChannel] > 50)
-
 
796
                                {
-
 
797
                                 if(old_switch == 50) if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) { FC_StatusFlags2 |= FC_STATUS2_AUTO_STARTING; SpeakHoTT = SPEAK_RISING;}
-
 
798
                                 old_switch = 150;
-
 
799
                                }
-
 
800
                                else
-
 
801
                                if(PPM_in[EE_Parameter.StartLandChannel] < -50)
-
 
802
                                {
-
 
803
                                 if(old_switch == 150) { FC_StatusFlags2 |= FC_STATUS2_AUTO_LANDING; SpeakHoTT = SPEAK_SINKING;}
-
 
804
                                 old_switch = 50;
-
 
805
                                }
-
 
806
                                else
-
 
807
                                {
-
 
808
                                 FC_StatusFlags2 &= ~(FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
-
 
809
                                }
-
 
810
                        }
-
 
811
#endif
791
                        FC_StatusFlags &= ~FC_STATUS_EMERGENCY_LANDING;
812
                        FC_StatusFlags &= ~FC_STATUS_EMERGENCY_LANDING;
792
            RcLostTimer = EE_Parameter.NotGasZeit * 50;
813
            RcLostTimer = EE_Parameter.NotGasZeit * 50;
793
            if(GasMischanteil > 40 && MotorenEin)
814
            if(GasMischanteil > 40 && MotorenEin)
794
                {
815
                {
795
                if(modell_fliegt < 0xffff) modell_fliegt++;
816
                if(modell_fliegt < 0xffff) modell_fliegt++;
Line 799... Line 820...
799
                SummeNick = 0;
820
                SummeNick = 0;
800
                SummeRoll = 0;
821
                SummeRoll = 0;
801
                sollGier = 0;
822
                sollGier = 0;
802
                Mess_Integral_Gier = 0;
823
                Mess_Integral_Gier = 0;
803
                                FC_StatusFlags2 |= FC_STATUS2_WAIT_FOR_TAKEOFF;
824
                                FC_StatusFlags2 |= FC_STATUS2_WAIT_FOR_TAKEOFF;
-
 
825
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
-
 
826
                                old_switch = 100;
-
 
827
#endif
804
             }
828
             }
805
                        else
829
                        else
806
                         {
830
                         {
807
               FC_StatusFlags |= FC_STATUS_FLY;
831
               FC_StatusFlags |= FC_STATUS_FLY;
808
                           if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF)
832
                           if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF)
809
                           {
833
                           {
810
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
834
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
811
                                if((NC_To_FC_Flags & NC_TO_FC_AUTOSTART) && (VarioCharacter == '=') && ACC_AltitudeControl)
835
                                if((NC_To_FC_Flags & NC_TO_FC_AUTOSTART || FC_StatusFlags2 & FC_STATUS2_AUTO_STARTING) && (VarioCharacter == '=') && ACC_AltitudeControl)
812
                                {
836
                                {
813
                                   FromNC_AltitudeSpeed = 100;
837
                                   FromNC_AltitudeSpeed = 80;
814
                                   FromNC_AltitudeSetpoint = 800;
838
                                   FromNC_AltitudeSetpoint = 500;
815
                                   SollHoehe = 800;
839
                                   SollHoehe = 500;
816
                                   trigger = 1000;
840
                                   trigger = 1000;
817
                                   SpeakHoTT = SPEAK_NEXT_WP;
841
                                   if(NC_To_FC_Flags & NC_TO_FC_AUTOSTART) SpeakHoTT = SPEAK_NEXT_WP;
818
/*                                 if(StartTrigger != 2)
842
/*                                 if(StartTrigger != 2)
819
                                                {
843
                                                {
820
                                                 StartTrigger = 1;
844
                                                 StartTrigger = 1;
821
                                                 if(HoverGas < STICK_GAIN * 35) HoverGas = STICK_GAIN * 35;
845
                                                 if(HoverGas < STICK_GAIN * 35) HoverGas = STICK_GAIN * 35;
822
                                                }
846
                                                }
823
*/
847
*/
824
                            }
848
                            }
-
 
849
//                              else FC_StatusFlags2 &= ~(FC_STATUS2_AUTO_STARTING);
825
#endif
850
#endif
826
                            if(HoehenWert > 150 || HoehenWert < -350 || !(Parameter_GlobalConfig & CFG_HOEHENREGELUNG))
851
                            if(HoehenWertF > 150 || HoehenWert < -350 || !(Parameter_GlobalConfig & CFG_HOEHENREGELUNG))
827
                                 {
852
                                 {
828
                                  FC_StatusFlags2 &= ~FC_STATUS2_WAIT_FOR_TAKEOFF;
-
 
829
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
853
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
830
                                  SpeakHoTT = SPEAK_RISING;
-
 
831
                                  trigger = 1000;
854
                                  trigger = 1000;
-
 
855
if(FC_StatusFlags2 & FC_STATUS2_AUTO_STARTING) { FromNC_AltitudeSpeed = 0; SollHoehe = 300;/*HoehenWertF + 100;*/}
-
 
856
else SpeakHoTT = SPEAK_RISING;
832
#endif
857
#endif
-
 
858
                                  FC_StatusFlags2 &= ~(FC_STATUS2_WAIT_FOR_TAKEOFF | FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
833
                                 }
859
                                 }
834
                SummeNick = 0;
860
                SummeNick = 0;
835
                SummeRoll = 0;
861
                SummeRoll = 0;
836
                Mess_Integral_Gier = 0;
862
                Mess_Integral_Gier = 0;
837
//                              sollGier = 0;
863
//                              sollGier = 0;
838
                                if(modell_fliegt > 1000) modell_fliegt = 1000;  // for the Hooverpoint-Estimation
864
                                if(modell_fliegt > 1000) modell_fliegt = 1000;  // for the Hooverpoint-Estimation
839
                           }
865
                           }
840
                                else  // Flying mode
866
                                else  // Flying mode
841
                                {
867
                                {
842
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
868
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
-
 
869
                                if((FC_StatusFlags2 & FC_STATUS2_AUTO_LANDING) && (VarioCharacter == 'v' || VarioCharacter == '=') && ACC_AltitudeControl)
-
 
870
                                {
-
 
871
                                   FromNC_AltitudeSpeed = EE_Parameter.LandingSpeed;
-
 
872
                                   FromNC_AltitudeSetpoint = -20000;
-
 
873
                            }
843
                                 if(trigger < 1000)
874
                                 if(trigger < 1000)
844
                                        {
875
                                        {
845
                                                trigger++;
876
                                                trigger++;
846
                                                SummeNick = 0;
877
                                                SummeNick = 0;
847
                                                SummeRoll = 0;
878
                                                SummeRoll = 0;
Line 883... Line 914...
883
                                                   CalibrationDone = 0;
914
                                                   CalibrationDone = 0;
884
                           beeptime = 1000;
915
                           beeptime = 1000;
885
                          }
916
                          }
886
                          else
917
                          else
887
                          {
918
                          {
888
                               ParamSet_ReadFromEEProm(GetActiveParamSet());
919
                               ParamSet_ReadFromEEProm(ActiveParamSet);
889
                               LipoDetection(0);
920
                               LipoDetection(0);
890
                                                   LIBFC_ReceiverInit(EE_Parameter.Receiver);
921
                                                   LIBFC_ReceiverInit(EE_Parameter.Receiver);
891
                           if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG))  // Höhenregelung aktiviert?
922
                           if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG))  // Höhenregelung aktiviert?
892
                            {
923
                            {
893
                             if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
924
                             if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();