Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2678 → Rev 2679

/trunk/main.c
65,8 → 65,8
unsigned char IamMaster = 0;
unsigned char Delete_Stoppflag_Timer = 0;
unsigned char OEM_String[17] = "Booting... \0\0\0\0\0";
unsigned char TouchDownTimer = 0;
 
 
void PrintLine(void)
{
printf("\r\n===================================");
712,6 → 712,9
// Sekundentakt
if(++second == 49)
{
static long altitudeOld = 0;
static char threeseconds = 3;
second = 0;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ShowSettingNameTime) ShowSettingNameTime--;
720,6 → 723,50
if(ShowCmpsCalibrateTime) ShowCmpsCalibrateTime--;
if(Delete_Stoppflag_Timer) Delete_Stoppflag_Timer--; else FC_StatusFlags3 &= ~FC_STATUS3_MOTORS_STOPPED_BY_RC;
#endif
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + for auto switch - off
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(--threeseconds == 0)
{
int AltitudeDeviationPer3Seconds = 0;
threeseconds = 3;
AltitudeDeviationPer3Seconds = HoehenWert - altitudeOld;
altitudeOld = HoehenWert;
if(abs(AltitudeDeviationPer3Seconds) > 90) TouchDownTimer = 0;
if(!MotorenEin) TouchDownTimer = 0;
}
if(ACC_AltitudeControl && HoehenReglerAktiv && (SollHoehe < (HoehenWert-1100)) && !(VersionInfo.HardwareError[0] & FC_ERROR0_PRESSURE)) // 11m unter Sollwert
{
if(TouchDownTimer < 255) TouchDownTimer++;
}
else TouchDownTimer = 0;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if( (NC_To_FC_Flags & NC_TO_FC_SWITCHOFF_IF_LANDED) || // for auto landing waypoints points
(NC_To_FC_Flags & NC_TO_FC_FAILSAFE_LANDING) || // for RC failsafe
(LowVoltageLandingActive) || // undervoltage
(FC_StatusFlags2 & FC_STATUS2_AUTO_LANDING) // Auto landing by switch
)
{
if(TouchDownTimer == 6) SpeakHoTT = SPEAK_SINKING;
else
if(TouchDownTimer == 9)
{
SpeakHoTT = SPEAK_LANDING;
}
else
if(TouchDownTimer == 16)
{
FC_StatusFlags3 |= FC_STATUS3_MOTORS_STOPPED_BY_RC; // that informs the slave to disarm the Motors
Delete_Stoppflag_Timer = 2; // 1-2 seconds
MotorenEin = 0;
modell_fliegt = 0;
FC_StatusFlags &= ~(FC_STATUS_EMERGENCY_LANDING | FC_STATUS_FLY);
SpeakHoTT = SPEAK_MK_OFF;
}
}
else TouchDownTimer = 0;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
if(SerialChannelDataOkay) if(--SerialChannelDataOkay == 0) InitSerialPoti();
if(NC_To_FC_Flags & NC_TO_FC_FAILSAFE_LANDING) ServoFailsafeActive = SERVO_FS_TIME;
else
/trunk/main.h
52,6 → 52,7
extern unsigned char LipoCells;
extern unsigned char Delete_Stoppflag_Timer;
extern void InitSerialPoti(void);
extern unsigned char TouchDownTimer;
unsigned char OEM_String[17];
 
#define NOTHING 0