Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1891 → Rev 1892

/branches/V0.84a_ACC-HH_HR_MartinR/fc.c
125,7 → 125,7
unsigned char Parameter_Gyro_I = 150; // Wert : 0-250
unsigned char Parameter_Gyro_Gier_P = 150; // Wert : 10-250
unsigned char Parameter_Gyro_Gier_I = 150; // Wert : 10-250
unsigned char Parameter_Gier_P = 2; // Wert : 1-20
unsigned char Parameter_Gier_P = 2; // Wert : 1-20 // MartinR: deaktivieren, da unbenutzt??
unsigned char Parameter_I_Faktor = 10; // Wert : 1-20
unsigned char Parameter_UserParam1 = 0;
unsigned char Parameter_UserParam2 = 0;
197,9 → 197,10
DebugOut.Analog[13] = Motor[1].SetPoint;
DebugOut.Analog[14] = Motor[2].SetPoint;
DebugOut.Analog[15] = Motor[3].SetPoint;
//DebugOut.Analog[16] = DiffNick; // MartinR: test
//DebugOut.Analog[17] = DiffRoll; // MartinR: test
//DebugOut.Analog[18] = MesswertNick; // MartinR: test
//DebugOut.Analog[16] = FromNC_Rotate_C; // MartinR: test
//DebugOut.Analog[17] = FromNC_Rotate_S; // MartinR: test
//DebugOut.Analog[18] = ControlHeading; // MartinR: test
//DebugOut.Analog[19] = MesswertRoll; // MartinR: test
DebugOut.Analog[20] = ServoNickValue;
DebugOut.Analog[22] = Capacity.ActualCurrent;
432,9 → 433,11
KopplungsteilNickRoll = tmpl3;
KopplungsteilRollNick = tmpl4;
tmpl4 -= tmpl3;
if(IntegralFaktor) // MartinR: nur im ACC-Mode
{
ErsatzKompass += tmpl4;
if(!Parameter_CouplingYawCorrection) Mess_Integral_Gier -= tmpl4/2; // Gier nachhelfen
 
}
tmpl = ((MesswertGier + tmpl4) * winkel_nick) / 2048L;
tmpl *= Parameter_AchsKopplung1; // 90
tmpl /= 4096L;
957,7 → 960,8
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// CareFree und freie Wahl der vorderen Richtung
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(CareFree)
//if(CareFree) // MartinR: so war es
if(CareFree && IntegralFaktor) // MartinR: CareFree nur im ACC-Mode
{
signed int nick, roll;
nick = stick_nick / 4;
1093,7 → 1097,7
 
// if(Looping_Nick || Looping_Roll) // MartinR: so war es
//if(Looping_Nick || Looping_Roll || (!IntegralFaktor & (Parameter_UserParam1 < 50) & !(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD))) // MartinR: erweitert
if((!IntegralFaktor & (Parameter_UserParam1 < 50) & !(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD))) // MartinR: Looping deaktiviert
if((!IntegralFaktor && (Parameter_UserParam1 < 50) && !(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD))) // MartinR: Looping deaktiviert
{
IntegralAccNick = 0;
IntegralAccRoll = 0;
1108,7 → 1112,7
LageKorrekturRoll = 0;
}
if((!IntegralFaktor & (Parameter_UserParam1 < 50) & !(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD)) ) // MartinR:
if((!IntegralFaktor && (Parameter_UserParam1 < 50) && !(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD)) ) // MartinR:
// nur im Moment des Umschaltens von HH auf ACC erfolgt ein Reset der Integrale, nicht aber bei normalem HH
// um einen im HH-Mode eventuell schwindelig geflogenen ACC_Mode zu resetten!
// bis zur Umschaltung werden die Integrale für den Kameraausgleich verwendet