Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2487 → Rev 2488

/trunk/eeprom.h
81,7 → 81,7
// ExtraConfig
#define CFG2_HEIGHT_LIMIT 0x01
#define CFG2_VARIO_BEEP 0x02
#define CFG_SENSITIVE_RC 0x04
//#define CFG_SENSITIVE_RC 0x04
#define CFG_3_3V_REFERENCE 0x08
#define CFG_NO_RCOFF_BEEPING 0x10
#define CFG_GPS_AID 0x20
/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/makefile
6,7 → 6,7
#-------------------------------------------------------------------
VERSION_MAJOR = 2
VERSION_MINOR = 07
VERSION_PATCH = 3
VERSION_PATCH = 4
VERSION_SERIAL_MAJOR = 11 # Serial Protocol to KopterTool -> do not change!
VERSION_SERIAL_MINOR = 0 # Serial Protocol
NC_SPI_COMPATIBLE = 71 # Navi-Kompatibilität
/trunk/rc.c
90,10 → 90,6
ISR(TIMER1_CAPT_vect)
//############################################################################
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!(EE_Parameter.ExtraConfig & CFG_SENSITIVE_RC))
#endif
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
122,12 → 118,10
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
PPM_in[index] = tmp;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else
{
PPM_diff[index] = 0;
if(SenderOkay < 50)
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
if(SenderOkay < 50)
{
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
134,11 → 128,8
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] = 0;
}
}
}
index++;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
#else
/*
if(PlatinenVersion < 20)
{
147,106 → 138,8
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
*/
#endif
}
}
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
else
{
static unsigned int AltICR=0;
static int ppm_in[13+4];
static int ppm_diff[13+4];
static int old_ppm_in[13+4];
static int old_ppm_diff[13+4];
signed int signal = 0,tmp;
static unsigned char index, okay_cnt = 0;
signal = (unsigned int) ICR1 - AltICR;
AltICR = ICR1;
//Syncronisationspause? (3.52 ms < signal < 25.6 ms)
if((signal > 1100) && (signal < 8000))
{
tmpChannels = index;
if(tmpChannels >= 4 && Channels == tmpChannels)
{
if(okay_cnt > 10)
{
NewPpmData = 0; // Null bedeutet: Neue Daten
for(index = 0; index < 13+4; index++)
{
if(okay_cnt > 30)
{
old_ppm_in[index] = PPM_in[index];
old_ppm_diff[index] = PPM_diff[index];
}
PPM_in[index] = ppm_in[index];
PPM_diff[index] = ppm_diff[index];
}
}
if(okay_cnt < 255) okay_cnt++;
}
else
{
if(okay_cnt > 100) okay_cnt = 10; else okay_cnt = 0;
ROT_ON;
}
index = 1;
if(!MotorenEin) Channels = tmpChannels;
}
else
{
if(index < 13+4)
{
if((signal > 250) && (signal < 687))
{
signal -= PPM_Neutral;
// Stabiles Signal
if((abs(signal - ppm_in[index]) < 6))
{
if(EE_Parameter.FailsafeChannel == 0 || PPM_in[EE_Parameter.FailsafeChannel] < 100) // forces Failsafe if the receiver doesn't have 'signal loss' on Failsafe
{
if(okay_cnt > 25) SenderOkay += 10;
else
if(okay_cnt > 10) SenderOkay += 2;
if(SenderOkay > 200) SenderOkay = 200;
}
}
tmp = (3 * (ppm_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 190) ppm_diff[index] = ((tmp - ppm_in[index]) / 3) * 3;
else ppm_diff[index] = 0;
ppm_in[index] = tmp;
}
else ROT_ON;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
#else
if(PlatinenVersion < 20)
{
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen
if(index == 6) J4High; else J4Low; // Servosignal an J4 anlegen
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
#endif
}
if(index < 20) index++;
else
if(index == 20)
{
unsigned char i;
ROT_ON;
index = 30;
for(i=0;i<13+4;i++) // restore from older data
{
PPM_in[i] = old_ppm_in[i];
PPM_diff[i] = 0;
// okay_cnt /= 2;
}
}
}
}
#endif
 
}
 
#else
/trunk/spi.c
385,9 → 385,12
GPSInfo.Speed = FromNaviCtrl.Param.Byte[3];
GPSInfo.HomeDistance = FromNaviCtrl.Param.Int[2];
GPSInfo.HomeBearing = FromNaviCtrl.Param.sInt[3];
if((signed char) PPM_in[WP_EVENT_PPM_IN] == -127) // zuletzt war der WP-Event auf Null
{
if(!FromNC_WP_EventChannel_New) FromNC_WP_EventChannel_New = (unsigned char) FromNaviCtrl.Param.Byte[8] + 127; // zwischenspeichern, damit keiner verpasst wird
}
PPM_in[WP_EVENT_PPM_IN] = (signed char) FromNaviCtrl.Param.Byte[8]; // WP_EVENT-Channel-Value (FromNC_WP_EventChannel)
if(!FromNC_WP_EventChannel_New) FromNC_WP_EventChannel_New = (unsigned char) FromNC_WP_EventChannel + 127; // zwischenspeichern, damit keiner verpasst wird
FromNC_AltitudeSpeed = FromNaviCtrl.Param.Byte[9];
FromNC_AltitudeSpeed = FromNaviCtrl.Param.Byte[9];
FromNC_AltitudeSetpoint = (long) FromNaviCtrl.Param.sInt[5] * 10; // in cm
break;
case SPI_MISC:
/trunk/version.txt
749,7 → 749,11
- New Parameter: Parameter_Hoehe_TiltCompensation
- Default Failsafe-Time is 60sec (was 30sek before)
 
2.07e (29.09.2014)
- Sensitive_RC removed
- Bugfix: WP-Event was sometimes triggered two times
toDo:
- CalAthmospheare nachführen
- ExpandBaro kürzer?