Subversion Repositories FlightCtrl

Rev

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

Rev 1658 Rev 1660
Line 171... Line 171...
171
{
171
{
172
    DebugOut.Analog[0] = IntegralNick / (EE_Parameter.GyroAccFaktor * 4);
172
    DebugOut.Analog[0] = IntegralNick / (EE_Parameter.GyroAccFaktor * 4);
173
    DebugOut.Analog[1] = IntegralRoll / (EE_Parameter.GyroAccFaktor * 4);
173
    DebugOut.Analog[1] = IntegralRoll / (EE_Parameter.GyroAccFaktor * 4);
174
    DebugOut.Analog[2] = Mittelwert_AccNick / 4;
174
    DebugOut.Analog[2] = Mittelwert_AccNick / 4;
175
    DebugOut.Analog[3] = Mittelwert_AccRoll / 4;
175
    DebugOut.Analog[3] = Mittelwert_AccRoll / 4;
176
    DebugOut.Analog[4] = MesswertGier;
176
    DebugOut.Analog[4] = (signed int) AdNeutralGier - AdWertGier;
177
    DebugOut.Analog[5] = HoehenWert/5;
177
    DebugOut.Analog[5] = HoehenWert/5;
178
    DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);//AdWertAccHoch;// Aktuell_az;//(Mess_Integral_Hoch / 512);//Aktuell_az;
178
    DebugOut.Analog[6] = (Mess_Integral_Hoch / 512);//AdWertAccHoch;// Aktuell_az;//(Mess_Integral_Hoch / 512);//Aktuell_az;
179
    DebugOut.Analog[8] = KompassValue;
179
    DebugOut.Analog[8] = KompassValue;
180
    DebugOut.Analog[9] = UBat;
180
    DebugOut.Analog[9] = UBat;
181
    DebugOut.Analog[10] = SenderOkay;
181
    DebugOut.Analog[10] = SenderOkay;
Line 327... Line 327...
327
    Mess_Integral_Gier = 0;
327
    Mess_Integral_Gier = 0;
328
    StartLuftdruck = Luftdruck;
328
    StartLuftdruck = Luftdruck;
329
    VarioMeter = 0;
329
    VarioMeter = 0;
330
    Mess_Integral_Hoch = 0;
330
    Mess_Integral_Hoch = 0;
331
    KompassStartwert = KompassValue;
331
    KompassStartwert = KompassValue;
332
ControlHeading = KompassValue / 15;
-
 
333
    GPS_Neutral();
332
    GPS_Neutral();
334
    beeptime = 50;
333
    beeptime = 50;
335
        Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L;
334
        Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L;
336
        Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L;
335
        Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L;
337
    ExternHoehenValue = 0;
336
    ExternHoehenValue = 0;
Line 770... Line 769...
770
                                                                        Mess_IntegralNick2 = IntegralNick;
769
                                                                        Mess_IntegralNick2 = IntegralNick;
771
                                                                        Mess_IntegralRoll2 = IntegralRoll;
770
                                                                        Mess_IntegralRoll2 = IntegralRoll;
772
                                                                        SummeNick = 0;
771
                                                                        SummeNick = 0;
773
                                                                        SummeRoll = 0;
772
                                                                        SummeRoll = 0;
774
                                                                        FCFlags |= FCFLAG_START;
773
                                                                        FCFlags |= FCFLAG_START;
-
 
774
ControlHeading = KompassValue / 15;
775
                                                                }
775
                                                                }
776
                                                                else
776
                                                                else
777
                                                                {
777
                                                                {
778
                                                                        beeptime = 1500; // indicate missing calibration
778
                                                                        beeptime = 1500; // indicate missing calibration
779
                                                                }
779
                                                                }
Line 1203... Line 1203...
1203
       w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
1203
       w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
1204
       v = abs(IntegralRoll /512);
1204
       v = abs(IntegralRoll /512);
1205
       if(v > w) w = v; // grösste Neigung ermitteln
1205
       if(v > w) w = v; // grösste Neigung ermitteln
1206
       korrektur = w / 8 + 2;
1206
       korrektur = w / 8 + 2;
1207
       fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180;
1207
       fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180;
1208
       if(abs(MesswertGier) > 128)
1208
           fehler += MesswertGier / 12;
1209
            {
-
 
1210
//               korrektur = korrektur = w / 16 + 2; // schnell konvergieren
-
 
1211
                }
1209
           
1212
       if(!KompassSignalSchlecht && w < 25)
1210
       if(!KompassSignalSchlecht && w < 25)
1213
        {
1211
        {
1214
        GierGyroFehler += fehler;
1212
        GierGyroFehler += fehler;
1215
        if(NeueKompassRichtungMerken)
1213
        if(NeueKompassRichtungMerken)
1216
         {
1214
         {