Subversion Repositories FlightCtrl

Rev

Rev 1834 | Rev 1839 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1834 Rev 1837
Line 76... Line 76...
76
long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
76
long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
77
long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2;
77
long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2;
78
long SummeNick=0,SummeRoll=0;
78
long SummeNick=0,SummeRoll=0;
79
volatile long Mess_Integral_Hoch = 0;
79
volatile long Mess_Integral_Hoch = 0;
80
int  KompassValue = 0;
80
int  KompassValue = 0;
81
int  KompassStartwert = 0;
81
int  KompassSollWert = 0;
82
int  KompassRichtung = 0;
82
int  KompassRichtung = 0;
83
unsigned int  KompassSignalSchlecht = 500;
83
unsigned int  KompassSignalSchlecht = 500;
84
unsigned char  MAX_GAS,MIN_GAS;
84
unsigned char  MAX_GAS,MIN_GAS;
85
unsigned char HoehenReglerAktiv = 0;
85
unsigned char HoehenReglerAktiv = 0;
86
unsigned char TrichterFlug = 0;
86
unsigned char TrichterFlug = 0;
Line 323... Line 323...
323
    Mess_IntegralRoll2 = IntegralRoll;
323
    Mess_IntegralRoll2 = IntegralRoll;
324
    Mess_Integral_Gier = 0;
324
    Mess_Integral_Gier = 0;
325
    StartLuftdruck = Luftdruck;
325
    StartLuftdruck = Luftdruck;
326
    VarioMeter = 0;
326
    VarioMeter = 0;
327
    Mess_Integral_Hoch = 0;
327
    Mess_Integral_Hoch = 0;
328
    KompassStartwert = KompassValue;
328
    KompassSollWert = KompassValue;
329
    GPS_Neutral();
329
    GPS_Neutral();
330
    beeptime = 50;
330
    beeptime = 50;
331
        Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L;
331
        Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L;
332
        Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L;
332
        Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L;
333
    ExternHoehenValue = 0;
333
    ExternHoehenValue = 0;
Line 1222... Line 1222...
1222
        {
1222
        {
1223
        GierGyroFehler += fehler;
1223
        GierGyroFehler += fehler;
1224
        if(NeueKompassRichtungMerken)
1224
        if(NeueKompassRichtungMerken)
1225
         {
1225
         {
1226
                  ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
1226
                  ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
1227
          KompassStartwert = (ErsatzKompass/GIER_GRAD_FAKTOR);
1227
          KompassSollWert = (ErsatzKompass/GIER_GRAD_FAKTOR);
1228
          NeueKompassRichtungMerken = 0;
1228
          NeueKompassRichtungMerken = 0;
1229
         }
1229
         }
1230
        }
1230
        }
1231
       ErsatzKompass += (fehler * 16) / korrektur;
1231
       ErsatzKompass += (fehler * 16) / korrektur;
1232
       w = (w * Parameter_KompassWirkung) / 32;           // auf die Wirkung normieren
1232
       w = (w * Parameter_KompassWirkung) / 32;           // auf die Wirkung normieren
Line 1234... Line 1234...
1234
       if(w >= 0)
1234
       if(w >= 0)
1235
        {
1235
        {
1236
          if(!KompassSignalSchlecht)
1236
          if(!KompassSignalSchlecht)
1237
          {
1237
          {
1238
           v = 64 + ((MaxStickNick + MaxStickRoll)) / 8;
1238
           v = 64 + ((MaxStickNick + MaxStickRoll)) / 8;
1239
           r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassStartwert) % 360) - 180;
1239
           r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassSollWert) % 360) - 180;
1240
           v = (r * w) / v;  // nach Kompass ausrichten
1240
           v = (r * w) / v;  // nach Kompass ausrichten
1241
           w = 3 * Parameter_KompassWirkung;
1241
           w = 3 * Parameter_KompassWirkung;
1242
           if(v > w) v = w; // Begrenzen
1242
           if(v > w) v = w; // Begrenzen
1243
           else
1243
           else
1244
           if(v < -w) v = -w;
1244
           if(v < -w) v = -w;