/trunk/eeprom.c |
---|
153,8 → 153,8 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-247 |
EE_Parameter.Hoehe_StickNeutralPoint = 0; // Wert : 0-247 (0 = Hover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 20; // Wert : 0-50 |
EE_Parameter.Stick_P = 14; // Wert : 1-6 |
EE_Parameter.Stick_D = 16; // Wert : 0-64 |
EE_Parameter.Stick_P = 14; // Wert : 1-20 |
EE_Parameter.Stick_D = 16; // Wert : 0-20 |
EE_Parameter.Gier_P = 12; // Wert : 1-20 |
EE_Parameter.Gas_Min = 8; // Wert : 0-32 |
EE_Parameter.Gas_Max = 230; // Wert : 33-247 |
218,7 → 218,7 |
EE_Parameter.NaviSpeedCompensation = 30; |
EE_Parameter.NaviOperatingRadius = 100; |
EE_Parameter.NaviAngleLimitation = 100; |
EE_Parameter.NaviPH_LoginTime = 4; |
EE_Parameter.NaviPH_LoginTime = 2; |
EE_Parameter.Receiver = RECEIVER_SPEKTRUM; |
memcpy(EE_Parameter.Name, "Sport\0", 12); |
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1); |
259,8 → 259,8 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-247 |
EE_Parameter.Hoehe_StickNeutralPoint = 0;// Wert : 0-247 (0 = Hover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50 |
EE_Parameter.Stick_P = 10; // Wert : 1-6 |
EE_Parameter.Stick_D = 16; // Wert : 0-64 |
EE_Parameter.Stick_P = 10; // Wert : 1-20 |
EE_Parameter.Stick_D = 16; // Wert : 0-20 |
EE_Parameter.Gier_P = 6; // Wert : 1-20 |
EE_Parameter.Gas_Min = 8; // Wert : 0-32 |
EE_Parameter.Gas_Max = 230; // Wert : 33-247 |
324,7 → 324,7 |
EE_Parameter.NaviSpeedCompensation = 30; |
EE_Parameter.NaviOperatingRadius = 100; |
EE_Parameter.NaviAngleLimitation = 100; |
EE_Parameter.NaviPH_LoginTime = 4; |
EE_Parameter.NaviPH_LoginTime = 2; |
EE_Parameter.Receiver = RECEIVER_SPEKTRUM; |
memcpy(EE_Parameter.Name, "Normal\0", 12); |
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1); |
364,8 → 364,8 |
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-247 |
EE_Parameter.Hoehe_StickNeutralPoint = 0;// Wert : 0-247 (0 = Hover-Estimation) |
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50 |
EE_Parameter.Stick_P = 8; // Wert : 1-6 |
EE_Parameter.Stick_D = 16; // Wert : 0-64 |
EE_Parameter.Stick_P = 8; // Wert : 1-20 |
EE_Parameter.Stick_D = 16; // Wert : 0-20 |
EE_Parameter.Gier_P = 6; // Wert : 1-20 |
EE_Parameter.Gas_Min = 8; // Wert : 0-32 |
EE_Parameter.Gas_Max = 230; // Wert : 33-247 |
429,7 → 429,7 |
EE_Parameter.NaviSpeedCompensation = 30; |
EE_Parameter.NaviOperatingRadius = 100; |
EE_Parameter.NaviAngleLimitation = 100; |
EE_Parameter.NaviPH_LoginTime = 4; |
EE_Parameter.NaviPH_LoginTime = 2; |
EE_Parameter.Receiver = RECEIVER_SPEKTRUM; |
memcpy(EE_Parameter.Name, "Beginner\0", 12); |
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1); |
/trunk/fc.c |
---|
66,7 → 66,7 |
unsigned int NeutralAccX=0, NeutralAccY=0; |
int NaviAccNick, NaviAccRoll,NaviCntAcc = 0; |
int NeutralAccZ = 0; |
unsigned char CosinusNickWinkel = 0, CosinusRollWinkel = 0 , ControlHeading = 0; |
unsigned char ControlHeading = 0; |
long IntegralNick = 0,IntegralNick2 = 0; |
long IntegralRoll = 0,IntegralRoll2 = 0; |
long IntegralAccNick = 0,IntegralAccRoll = 0,IntegralAccZ = 0; |
802,7 → 802,7 |
if(!NewPpmData-- || (FCFlags & FCFLAG_NOTLANDUNG)) |
{ |
static int stick_nick,stick_roll; |
/* |
unsigned char angle = 180/15; |
signed char sintab[31] = { 0, 4, 8, 11, 14, 16, 16, 16, 14, 11, 8, 4, 0, -4, -8, -11, -14, -16, -16, -16, -14, -11, -8, -4, 0, 4, 8, 11, 14, 16, 16}; |
//signed char costab[24] = {16, 16, 14, 11, 8, 4, 0, -4, -8, -11, -14, -16, -16, -16, -14, -11, -8, -4, 0, 4, 8, 11, 14, 16}; |
811,7 → 811,7 |
signed int cos_h, sin_h; |
cos_h = sintab[angle + 6]/2; |
sin_h = sintab[angle]/2; |
*/ |
ParameterZuordnung(); |
stick_nick = (stick_nick * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_P) / 4; |
stick_nick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D; |
818,10 → 818,15 |
stick_roll = (stick_roll * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_P) / 4; |
stick_roll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D; |
DebugOut.Analog[16] = stick_roll; |
if(HeadFree) |
{ |
StickNick = ((cos_h * stick_nick) + (sin_h * stick_roll))/8; |
StickRoll = ((cos_h * stick_roll) - (sin_h * stick_nick))/8; |
signed int nick, roll; |
nick = stick_nick / 4; |
roll = stick_roll / 4; |
StickNick = ((FromNC_Rotate_C * nick) + (FromNC_Rotate_S * roll)) / (32 / 4); |
StickRoll = ((FromNC_Rotate_C * roll) - (FromNC_Rotate_S * nick)) / (32 / 4); |
} |
else |
{ |
828,6 → 833,7 |
StickNick = stick_nick; |
StickRoll = stick_roll; |
} |
DebugOut.Analog[17] = StickRoll; |
StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; |
if(StickGier > 2) StickGier -= 2; else |
1191,7 → 1197,7 |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Kompass |
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
DebugOut.Analog[18] = KompassSignalSchlecht; |
//DebugOut.Analog[18] = KompassSignalSchlecht; |
if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)) |
{ |
1201,7 → 1207,7 |
if(v > w) w = v; // grösste Neigung ermitteln |
korrektur = w / 8 + 2; |
fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; |
fehler += MesswertGier / 12; |
//fehler += MesswertGier / 12; |
if(!KompassSignalSchlecht && w < 25) |
{ |
1213,8 → 1219,8 |
NeueKompassRichtungMerken = 0; |
} |
} |
DebugOut.Analog[16] = fehler; |
DebugOut.Analog[17] = korrektur; |
//DebugOut.Analog[16] = fehler; |
//DebugOut.Analog[17] = korrektur; |
ErsatzKompass += (fehler * 16) / korrektur; |
w = (w * Parameter_KompassWirkung) / 32; // auf die Wirkung normieren |
w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln |
/trunk/fc.h |
---|
44,6 → 44,7 |
extern int KompassValue; |
extern int KompassStartwert; |
extern int KompassRichtung; |
extern unsigned char ControlHeading; |
extern int TrimNick, TrimRoll; |
extern long ErsatzKompass; |
extern int ErsatzKompassInGrad; // Kompasswert in Grad |
/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/spi.c |
---|
13,6 → 13,7 |
unsigned char SPI_BufferIndex; |
unsigned char SPI_RxBufferIndex; |
signed char FromNC_Rotate_C = 8, FromNC_Rotate_S = 0; |
volatile unsigned char SPI_Buffer[sizeof(FromNaviCtrl)]; |
unsigned char *SPI_TX_Buffer; |
158,6 → 159,7 |
ToNaviCtrl.IntegralNick = (int) (IntegralNick / (long)(EE_Parameter.GyroAccFaktor * 4)); |
ToNaviCtrl.IntegralRoll = (int) (IntegralRoll / (long)(EE_Parameter.GyroAccFaktor * 4)); |
ToNaviCtrl.GyroCompass = (10 * ErsatzKompass) / GIER_GRAD_FAKTOR; |
ToNaviCtrl.GyroGier = (signed int) AdNeutralGier - AdWertGier; |
ToNaviCtrl.AccNick = ((int) ACC_AMPLIFY * (NaviAccNick / NaviCntAcc))/4; |
ToNaviCtrl.AccRoll = ((int) ACC_AMPLIFY * (NaviAccRoll / NaviCntAcc))/4; |
NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0; |
177,6 → 179,7 |
ToNaviCtrl.Param.Byte[8] = (unsigned char) FCFlags; |
FCFlags &= ~(FCFLAG_CALIBRATE | FCFLAG_START); |
ToNaviCtrl.Param.Byte[9] = GetActiveParamSet(); |
ToNaviCtrl.Param.Byte[10] = ControlHeading * 8; |
break; |
case SPI_FCCMD_ACCU: |
281,6 → 284,8 |
FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.sByte[2]; |
FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[3]; |
FromNaviCtrl_Value.GpsZ = FromNaviCtrl.Param.Byte[4]; |
FromNC_Rotate_C = FromNaviCtrl.Param.Byte[5]; |
FromNC_Rotate_S = FromNaviCtrl.Param.Byte[6]; |
break; |
case SPI_NCCMD_VERSION: |
/trunk/spi.h |
---|
162,8 → 162,8 |
extern struct str_ToNaviCtrl ToNaviCtrl; |
extern struct str_FromNaviCtrl FromNaviCtrl; |
extern unsigned char SPI_CommandCounter,NaviDataOkay; |
extern signed char FromNC_Rotate_C, FromNC_Rotate_S; |
extern void SPI_MasterInit(void); |
extern void SPI_StartTransmitPacket(void); |
extern void UpdateSPI_Buffer(void); |
/trunk/timer0.c |
---|
42,9 → 42,9 |
if(!cnt_1ms) UpdateMotor = 1; |
if(!PINC & 0x10) compass_active = 1; |
if(beeptime >= 10) |
if(beeptime) |
{ |
beeptime -= 10; |
if(beeptime > 10) beeptime -= 10; else beeptime = 0; |
if(beeptime & BeepMuster) |
{ |
pieper_ein = 1; |
/trunk/version.txt |
---|
388,4 → 388,4 |
0.79c H. Buss + G.Stobrawa 20.4.2010 |
- Unterstützung der BL2.0-Regler Konfiguration via MK-Tool |
- Erste Version von "Head-Free" |
- GPS-Login-Time auf 2 reduziert |