Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2321 → Rev 2322

/trunk/eeprom.h
5,7 → 5,7
#include "twimaster.h"
 
#define EEPARAM_REVISION 93 // is count up, if paramater stucture has changed (compatibility)
#define EEPARAM_REVISION_SUB 50 // count down! (EEPARAM_REVISION - EEPARAM_REVISION_SUB) if the parameter changes without changes to the KopterTool compatiblity
#define EEPARAM_REVISION_SUB 0 // count down! (EEPARAM_REVISION - EEPARAM_REVISION_SUB) if the parameter changes without changes to the KopterTool compatiblity
#define EEMIXER_REVISION 1 // is count up, if mixer stucture has changed (compatibility)
 
#define EEPROM_ADR_PARAM_BEGIN 0
/trunk/fc.c
204,6 → 204,7
DebugOut.Analog[14] = Motor[2].SetPoint;
DebugOut.Analog[15] = Motor[3].SetPoint;
DebugOut.Analog[20] = ServoNickValue;
DebugOut.Analog[21] = HoverGas;
DebugOut.Analog[22] = Capacity.ActualCurrent;
DebugOut.Analog[23] = Capacity.UsedCapacity;
DebugOut.Analog[24] = SollHoehe/10;
784,6 → 785,7
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay > 140)
{
static unsigned int trigger = 0;
FC_StatusFlags &= ~FC_STATUS_EMERGENCY_LANDING;
RcLostTimer = EE_Parameter.NotGasZeit * 50;
if(GasMischanteil > 40 && MotorenEin)
803,11 → 805,28
FC_StatusFlags |= FC_STATUS_FLY;
if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF)
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if((NC_To_FC_Flags & NC_TO_FC_AUTOSTART) && (VarioCharacter == '=') && ACC_AltitudeControl)
{
FromNC_AltitudeSpeed = 100;
FromNC_AltitudeSetpoint = 800;
SollHoehe = 800;
trigger = 1000;
SpeakHoTT = SPEAK_NEXT_WP;
/* if(StartTrigger != 2)
{
StartTrigger = 1;
if(HoverGas < STICK_GAIN * 35) HoverGas = STICK_GAIN * 35;
}
*/
}
#endif
if(HoehenWert > 150 || HoehenWert < -350 || !(Parameter_GlobalConfig & CFG_HOEHENREGELUNG))
{
FC_StatusFlags2 &= ~FC_STATUS2_WAIT_FOR_TAKEOFF;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
SpeakHoTT = SPEAK_RISING;
SpeakHoTT = SPEAK_RISING;
trigger = 1000;
#endif
}
SummeNick = 0;
816,7 → 835,25
// sollGier = 0;
if(modell_fliegt > 1000) modell_fliegt = 1000; // for the Hooverpoint-Estimation
}
}
else // Flying mode
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(trigger < 1000)
{
trigger++;
SummeNick = 0;
SummeRoll = 0;
Mess_Integral_Gier = 0;
SollHoehe = HoehenWertF - 300;
}
else
if(ACC_AltitudeControl && (VarioCharacter == 'v' || VarioCharacter == '-') && HoehenWert < 1000 /*&& FromNC_AltitudeSetpoint < 0*/)
{
if(Aktuell_az > 940) { trigger = 0; SpeakHoTT = SPEAK_LANDING; };
}
#endif
}
} // end of: modell_fliegt > 256
if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0)
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1477,8 → 1514,6
static unsigned long HoverGasFilter = 0;
static unsigned char delay = 100, BaroAtUpperLimit = 0, BaroAtLowerLimit = 0;
 
// get the current hooverpoint
DebugOut.Analog[21] = HoverGas;
 
// Expand the measurement
// measurement of air pressure close to upper limit and no overflow in correction of the new OCR0A value occurs
/trunk/fc.h
31,6 → 31,8
//NC_To_FC_Flags
#define NC_TO_FC_FLYING_RANGE 0x01
#define NC_TO_FC_EMERGENCY_LANDING 0x02
#define NC_TO_FC_AUTOSTART 0x04
#define NC_TO_FC_AUTOLANDING 0x08 // not used
 
extern volatile unsigned char FC_StatusFlags, FC_StatusFlags2;
extern void ParameterZuordnung(void);
/trunk/hottmenu.c
79,6 → 79,7
#define HOTT_KEY_SET 6
#define HOTT_KEY_LEFT 8
 
#define VARIO_ZERO 30000
unsigned char NaviData_WaypointIndex = 0, NaviData_WaypointNumber = 0, NaviData_TargetHoldTime = 0;
unsigned int NaviData_TargetDistance = 0;
 
276,32 → 277,31
 
unsigned int BuildHoTT_Vario(void)
{
unsigned int tmp = 30000;
unsigned int tmp = VARIO_ZERO;
if(VarioCharacter == '+' || VarioCharacter == '-')
{
tmp = 30000 + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
if(tmp < 30000 && tmp > 30000 - 50) tmp = 30000 - 50; // weil es sonst erst bei < 0,5m/sek piept
tmp = VARIO_ZERO + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
if(tmp < VARIO_ZERO && tmp > VARIO_ZERO - 50) tmp = VARIO_ZERO - 50; // weil es sonst erst bei < 0,5m/sek piept
}
else
if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
{
tmp = 30000 + HoTTVarioMeter;
if(tmp > 30000)
tmp = VARIO_ZERO + HoTTVarioMeter;
if(tmp > VARIO_ZERO)
{
if(tmp < 30000 + 100) tmp = 30000;
if(tmp < VARIO_ZERO + 100) tmp = VARIO_ZERO;
else tmp -= 100;
}
if(tmp < 30000)
if(tmp < VARIO_ZERO)
{
if(tmp > 30000 - 100) tmp = 30000;
if(tmp > VARIO_ZERO - 100) tmp = VARIO_ZERO;
else tmp += 100;
}
}
else
if(VarioCharacter == '^') tmp = 30000 + FromNC_AltitudeSpeed * 10;
if(VarioCharacter == '^') tmp = VARIO_ZERO + FromNC_AltitudeSpeed * 10;
else
if(VarioCharacter == 'v') tmp = 30000 - FromNC_AltitudeSpeed * 10;
 
if(VarioCharacter == 'v') tmp = VARIO_ZERO - FromNC_AltitudeSpeed * 10;
return(tmp);
}
 
308,14 → 308,14
//---------------------------------------------------------------
unsigned char HoTT_Telemety(unsigned char packet_request)
{
unsigned char i;
unsigned char i;
//Debug("rqst: %02X",packet_request);
 
switch(packet_request)
{
case HOTT_VARIO_PACKET_ID:
GPSPacket.WarnBeep = HoTT_Waring(); // Achtung: das ist richtig hier, damit der Varioton schon vorher abgestellt wird
VarioPacket.Altitude = HoehenWert/100 + 500;
VarioPacket.m_sec = BuildHoTT_Vario();
if(!GPSPacket.WarnBeep) VarioPacket.m_sec = BuildHoTT_Vario(); else VarioPacket.m_sec = VARIO_ZERO;
VarioPacket.m_3sec = VarioPacket.m_sec;
VarioPacket.m_10sec = VarioPacket.m_sec;
if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
367,7 → 367,6
}
else
for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
return(sizeof(VarioPacket));
break;
 
376,10 → 375,10
// GPSPacket.Distance = GPSInfo.HomeDistance/10; // macht die NC
// GPSPacket.Heading = GPSInfo.HomeBearing/2; // macht die NC
// GPSPacket.Speed = (GPSInfo.Speed * 36) / 10; // macht die NC
GPSPacket.m_sec = BuildHoTT_Vario();
// GPSPacket.WarnBeep = HoTT_Waring(); //(wird jetzt weiter oben gemacht)
if(!GPSPacket.WarnBeep) GPSPacket.m_sec = BuildHoTT_Vario(); else GPSPacket.m_sec = VARIO_ZERO;
GPSPacket.m_3sec = 120;
GPSPacket.NumOfSats = GPSInfo.NumOfSats;
GPSPacket.WarnBeep = HoTT_Waring();
if(GPSInfo.Flags & FLAG_DIFFSOLN) GPSPacket.SatFix = 'D';
else
if(GPSInfo.SatFix == SATFIX_3D) GPSPacket.SatFix = ' ';
401,7 → 400,7
ElectricAirPacket.VoltageCell7 = GPSInfo.HomeDistance/20;
ElectricAirPacket.VoltageCell13 = ElectricAirPacket.VoltageCell6;
ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
ElectricAirPacket.m_sec = BuildHoTT_Vario();
if(!GPSPacket.WarnBeep) ElectricAirPacket.m_sec = BuildHoTT_Vario(); else ElectricAirPacket.m_sec = VARIO_ZERO;
ElectricAirPacket.m_3sec = 120;
ElectricAirPacket.InputVoltage = UBat;
ElectricAirPacket.Temperature1 = MinBlTempertaure + 20;
426,7 → 425,7
HoTTGeneral.Altitude = HoehenWert/100 + 500;
HoTTGeneral.Battery1 = UBat;
HoTTGeneral.Battery2 = UBat;
HoTTGeneral.m_sec = BuildHoTT_Vario();
if(!GPSPacket.WarnBeep) HoTTGeneral.m_sec = BuildHoTT_Vario(); else HoTTGeneral.m_sec = VARIO_ZERO;
HoTTGeneral.m_3sec = 120;
HoTTGeneral.InputVoltage = UBat;
HoTTGeneral.Temperature1 = MinBlTempertaure + 20;
/trunk/libfc1284.a
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/libfc644.a
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/trunk/main.c
121,6 → 121,9
PORTB = 0x00;
DDRD = 0x0A; // UART & J3 J4 J5
PORTD = 0x5F; // PPM-Input & UART
 
if(GetParamByte(PID_EE_REVISION) == EEPARAM_REVISION - 50) SetParamByte(PID_EE_REVISION,EEPARAM_REVISION); // remove the EEPARAM_REVISION_SUB from Version 0.90g
 
for(timer = 0; timer < 1000; timer++); // verzögern
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(PINB & 0x02)
/trunk/makefile
6,7 → 6,7
#-------------------------------------------------------------------
VERSION_MAJOR = 0
VERSION_MINOR = 90
VERSION_PATCH = 6
VERSION_PATCH = 7
VERSION_SERIAL_MAJOR = 11 # Serial Protocol
VERSION_SERIAL_MINOR = 0 # Serial Protocol
NC_SPI_COMPATIBLE = 53 # Navi-Kompatibilität
/trunk/version.txt
576,4 → 576,8
0.90g (29.04.2013)
- No ACC-Z error if the MK is tilted after switching on
- ATMEGA644 (until FC2.0): Sensitive RC-Signal validation removed -> that was only nessecary for old 35MHz receivers
 
0.90h (07.05.2013)
- Auto Start and landing
- old eepro-compatiblity to remain compatible to PKT
- HoTT-Bugfix: no speech while vario tone