/trunk/eeprom.c |
---|
203,10 → 203,10 |
EE_Parameter.NaviGpsMinSat = 6; |
EE_Parameter.NaviStickThreshold = 8; |
EE_Parameter.NaviWindCorrection = 90; |
EE_Parameter.NaviSpeedCompensation = 30; |
EE_Parameter.NaviAccCompensation = 42; |
EE_Parameter.NaviOperatingRadius = 245; |
EE_Parameter.NaviAngleLimitation = 140; |
EE_Parameter.NaviPH_LoginTime = 2; |
EE_Parameter.NaviPH_LoginTime = 5; |
EE_Parameter.OrientationAngle = 0; |
EE_Parameter.CareFreeModeControl = 0; |
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-247 ( Automatische Zellenerkennung bei < 50) |
215,6 → 215,7 |
EE_Parameter.MotorSmooth = 0; |
EE_Parameter.ComingHomeAltitude = 0; // 0 = don't change |
EE_Parameter.FailSafeTime = 0; // 0 = off |
EE_Parameter.MaxAltitude = 150; // 0 = off |
} |
void ParamSet_DefaultSet1(void) // sport |
/trunk/eeprom.h |
---|
4,7 → 4,7 |
#include <inttypes.h> |
#include "twimaster.h" |
#define EEPARAM_REVISION 86 // is count up, if paramater stucture has changed (compatibility) |
#define EEPARAM_REVISION 87 // is count up, if paramater stucture has changed (compatibility) |
#define EEMIXER_REVISION 1 // is count up, if mixer stucture has changed (compatibility) |
204,7 → 204,7 |
unsigned char NaviGpsMinSat; |
unsigned char NaviStickThreshold; |
unsigned char NaviWindCorrection; |
unsigned char NaviSpeedCompensation; |
unsigned char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation |
unsigned char NaviOperatingRadius; |
unsigned char NaviAngleLimitation; |
unsigned char NaviPH_LoginTime; |
217,6 → 217,7 |
unsigned char MotorSmooth; |
unsigned char ComingHomeAltitude; |
unsigned char FailSafeTime; |
unsigned char MaxAltitude; |
//------------------------------------------------ |
unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
unsigned char ServoCompInvert; // // 0x01 = Nick, 0x02 = Roll 0 oder 1 // WICHTIG!!! am Ende lassen |
/trunk/fc.c |
---|
157,6 → 157,7 |
unsigned char Parameter_ExternalControl; |
unsigned char Parameter_GlobalConfig; |
unsigned char Parameter_ExtraConfig; |
unsigned char Parameter_MaximumAltitude = 40; |
unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5; |
unsigned char CareFree = 0; |
const signed char sintab[31] = { 0, 2, 4, 6, 7, 8, 8, 8, 7, 6, 4, 2, 0, -2, -4, -6, -7, -8, -8, -8, -7, -6, -4, -2, 0, 2, 4, 6, 7, 8, 8}; // 15° steps |
610,6 → 611,7 |
CHK_POTI(Parameter_AchsKopplung1,EE_Parameter.AchsKopplung1); |
CHK_POTI(Parameter_AchsKopplung2,EE_Parameter.AchsKopplung2); |
CHK_POTI(Parameter_CouplingYawCorrection,EE_Parameter.CouplingYawCorrection); |
CHK_POTI(Parameter_MaximumAltitude,EE_Parameter.MaxAltitude); |
Parameter_GlobalConfig = EE_Parameter.GlobalConfig; |
Parameter_ExtraConfig = EE_Parameter.ExtraConfig; |
// CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255); |
648,6 → 650,8 |
CareFree = 0; |
} |
if(CareFree) { FC_StatusFlags2 |= FC_STATUS2_CAREFREE; if(Parameter_AchsKopplung1 < 210) Parameter_AchsKopplung1 += 30;} else FC_StatusFlags2 &= ~FC_STATUS2_CAREFREE; |
// Limit the maximum Altitude |
if(Parameter_MaximumAltitude) if(SollHoehe/100 > Parameter_MaximumAltitude) SollHoehe = (long) Parameter_MaximumAltitude * 100L; |
} |
//############################################################################ |
1024,10 → 1028,18 |
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin)) |
{ |
long tmp_long, tmp_long2; |
//if(Poti3 < 120) FromNaviCtrl_Value.Kalman_K = Poti3/2; |
//DebugOut.Analog[25] = FromNaviCtrl_Value.Kalman_K; |
//DebugOut.Analog[26] = FromNaviCtrl_Value.Kalman_MaxFusion; |
//DebugOut.Analog[16] = (Mittelwert_AccNick-FromNaviCtrl.AccErrorN) / 4; |
//DebugOut.Analog[18] = (Mittelwert_AccRoll-FromNaviCtrl.AccErrorR) / 4; |
//DebugOut.Analog[19] = -FromNaviCtrl.AccErrorR / 4; |
if(FromNaviCtrl_Value.Kalman_K > 0 /*&& !TrichterFlug*/) |
{ |
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick); |
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll); |
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccNick - FromNaviCtrl.AccErrorN)); |
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccRoll - FromNaviCtrl.AccErrorR)); |
tmp_long = (tmp_long * FromNaviCtrl_Value.Kalman_K) / (32 * 16); |
tmp_long2 = (tmp_long2 * FromNaviCtrl_Value.Kalman_K) / (32 * 16); |
KompassFusion = FromNaviCtrl_Value.Kalman_K; |
1271,7 → 1283,7 |
{ |
if(--NeueKompassRichtungMerken == 0) |
{ |
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR; |
//--> ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR; |
KompassSollWert = (ErsatzKompass/GIER_GRAD_FAKTOR); |
} |
} |
/trunk/hottmenu.c |
---|
41,7 → 41,7 |
"FC Roll ACC \0", // 14 |
"FC Z-ACC \0", // 15 |
"Pressure sensor \0", // 16 |
"FC I2C \0", // 17 |
"I2C FC->BL-Ctrl \0", // 17 |
"Bl Missing \0", // 18 |
"Mixer Error \0", // 19 |
"Carefree Error \0" // 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 |
---|
288,7 → 288,7 |
} |
if((BeepMuster == 0xffff) && MotorenEin) |
{ |
beeptime = 10000; |
beeptime = 25000; |
BeepMuster = 0x0080; |
} |
} |
321,13 → 321,14 |
} |
else |
{ |
VersionInfo.HardwareError[1] &= ~FC_ERROR1_BL_MISSING; |
if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status |
if(!beeptime) |
{ |
VersionInfo.HardwareError[1] &= ~FC_ERROR1_BL_MISSING; |
if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status |
} |
} |
if(I2CTimeout > 6) VersionInfo.HardwareError[1] &= ~FC_ERROR1_I2C; |
if(I2CTimeout > 6) if(!beeptime) VersionInfo.HardwareError[1] &= ~FC_ERROR1_I2C; |
if(SenderOkay && DisableRcOffBeeping) { DisableRcOffBeeping = 0; beeptime = 5000;}; |
if(PcZugriff) PcZugriff--; |
else |
{ |
366,6 → 367,8 |
GPS_Roll = 0; |
GPS_AidMode = 0; |
GPSInfo.Flags = 0; |
FromNaviCtrl.AccErrorN = 0; |
FromNaviCtrl.AccErrorR = 0; |
//if(!beeptime) |
FromNaviCtrl.CompassValue = -1; |
NaviDataOkay = 0; |
404,7 → 407,7 |
} |
LED_Update(); |
Capacity_Update(); |
} else DebugOut.Analog[26]++; |
} //else DebugOut.Analog[26]++; |
} |
if(!SendSPI) { SPI_TransmitByte(); } |
} |
/trunk/makefile |
---|
6,10 → 6,10 |
#------------------------------------------------------------------- |
VERSION_MAJOR = 0 |
VERSION_MINOR = 85 |
VERSION_PATCH = 10 |
VERSION_PATCH = 11 |
VERSION_SERIAL_MAJOR = 11 # Serial Protocol |
VERSION_SERIAL_MINOR = 0 # Serial Protocol |
NC_SPI_COMPATIBLE = 21 # Navi-Kompatibilität |
NC_SPI_COMPATIBLE = 22 # Navi-Kompatibilität |
#------------------------------------------------------------------- |
# get SVN revision |
/trunk/menu.c |
---|
34,7 → 34,7 |
void Menu(void) |
{ |
char i; |
unsigned char i; |
if(RemoteKeys & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue;} |
if(RemoteKeys & KEY2) { if(MenuePunkt == MaxMenue) MenuePunkt = 0; else MenuePunkt++;} |
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0; |
51,7 → 51,7 |
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)) |
if(NC_ErrorCode) |
{ |
LCD_printfxy(0,3,"%2d:",NC_ErrorCode); |
LCD_printfxy(0,3,"ERR%2d:",NC_ErrorCode); |
_printf_P(&Menu_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0); |
} |
else |
166,18 → 166,18 |
*/ |
case 13: |
LCD_printfxy(0,0,"BL-Ctrl Errors " ); |
for(i=1;i<4;i++) |
for(i=0;i<3;i++) |
{ |
LCD_printfxy(0,i,"%3d %3d %3d %3d ",Motor[i*4].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+1].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+2].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+3].State & MOTOR_STATE_ERROR_MASK); |
if(i*4 >= RequiredMotors) break; |
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+1].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+2].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+3].State & MOTOR_STATE_ERROR_MASK); |
// if(i*4 >= RequiredMotors) break; |
} |
break; |
case 14: |
LCD_printfxy(0,0,"BL Temperature" ); |
for(i=1;i<4;i++) |
for(i=0;i<3;i++) |
{ |
LCD_printfxy(0,i,"%3d %3d %3d %3d ",Motor[i*4].Temperature,Motor[i*4+1].Temperature,Motor[i*4+2].Temperature,Motor[i*4+3].Temperature); |
if(i*4 >= RequiredMotors) break; |
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].Temperature,Motor[i*4+1].Temperature,Motor[i*4+2].Temperature,Motor[i*4+3].Temperature); |
// if(4 + i * 4 >= RequiredMotors) break; |
} |
break; |
case 15: |
/trunk/menu.h |
---|
11,7 → 11,7 |
extern unsigned char MenuePunkt; |
extern unsigned char RemoteKeys; |
#define LCD_printfxy(x,y,format, args...) { DispPtr = y * 20 + x; _printf_P(&Menu_Putchar,PSTR(format) , ## args);} |
#define LCD_printfxy(x,y,format, args...) { DispPtr = (y) * 20 + (x); _printf_P(&Menu_Putchar,PSTR(format) , ## args);} |
#define LCD_printf(format, args...) { _printf_P(&Menu_Putchar, PSTR(format) , ## args);} |
#endif //_MENU_H |
/trunk/spi.c |
---|
210,7 → 210,7 |
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviStickThreshold; |
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviOperatingRadius; |
ToNaviCtrl.Param.Byte[9] = EE_Parameter.NaviWindCorrection; |
ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviSpeedCompensation; |
ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviAccCompensation; |
ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation; |
break; |
289,9 → 289,9 |
} |
// update compass readings |
MagVec.x = FromNaviCtrl.MagVecX; |
MagVec.y = FromNaviCtrl.MagVecY; |
MagVec.z = FromNaviCtrl.MagVecZ; |
// MagVec.x = FromNaviCtrl.MagVecX; |
// MagVec.y = FromNaviCtrl.MagVecY; |
// MagVec.z = FromNaviCtrl.MagVecZ; |
if(FromNaviCtrl.CompassValue <= 360) KompassValue = FromNaviCtrl.CompassValue; |
KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180; |
/trunk/spi.h |
---|
101,8 → 101,10 |
signed int GPS_Roll; |
signed int GPS_Gier; |
signed int CompassValue; |
signed int MagVecX; |
signed int MagVecY; |
// signed int MagVecX; |
// signed int MagVecY; |
signed int AccErrorN; |
signed int AccErrorR; |
signed int MagVecZ; |
signed int Status; |
unsigned int BeepTime; |
/trunk/uart.c |
---|
106,7 → 106,7 |
"Capacity [mAh] ", |
"Height Setpoint ", |
"25 ", //25 |
"26 CPU OverLoad ", |
"26 ", //"26 CPU OverLoad ", |
"Compass Setpoint", |
"I2C-Error ", |
"BL Limit ", |
/trunk/version.txt |
---|
484,5 → 484,8 |
- virtuelles LCD-Menü: |
- "ExternControl" aus Platzgründen aus dem virtuellen LCD-Menü entfernt. |
- keine BL-Temperaturen und I2C-Fehler anzeigen, wenn die BL-Regler nicht verwendet werden |
- nach dem Gieren nicht den Erstatzkompass auf den Kompasswert stellen, die Umschaltung war zu hart |
- ACC Correction eingeführt |
- I2C Fehler kamen nicht bei der NC an, weil die zu kurz waren |