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(); |