Subversion Repositories FlightCtrl

Rev

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

Rev 882 Rev 918
Line 324... Line 324...
324
//############################################################################
324
//############################################################################
325
// Messwerte beim Ermitteln der Nullage
325
// Messwerte beim Ermitteln der Nullage
326
void CalibrierMittelwert(void)
326
void CalibrierMittelwert(void)
327
//############################################################################
327
//############################################################################
328
{                
328
{                
-
 
329
    if(PlatinenVersion >= 12) SucheGyroOffset();
329
    // ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
330
    // ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
330
        ANALOG_OFF;
331
        ANALOG_OFF;
331
        MesswertNick = AdWertNick;
332
        MesswertNick = AdWertNick;
332
        MesswertRoll = AdWertRoll;
333
        MesswertRoll = AdWertRoll;
333
        MesswertGier = AdWertGier;
334
        MesswertGier = AdWertGier;
Line 489... Line 490...
489
                }
490
                }
490
            if((modell_fliegt < 256))
491
            if((modell_fliegt < 256))
491
                {
492
                {
492
                SummeNick = 0;
493
                SummeNick = 0;
493
                SummeRoll = 0;
494
                SummeRoll = 0;
-
 
495
                if(modell_fliegt == 250)
-
 
496
                 {
494
                if(modell_fliegt == 250) NeueKompassRichtungMerken = 1;
497
                  NeueKompassRichtungMerken = 1;
-
 
498
                  sollGier = 0;
-
 
499
                  Mess_Integral_Gier = 0;      
-
 
500
                  Mess_Integral_Gier2 = 0;
-
 
501
                 }
495
                }
502
                }
496
            if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0)
503
            if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0)
497
                {
504
                {
498
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
505
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
499
// auf Nullwerte kalibrieren
506
// auf Nullwerte kalibrieren
Line 710... Line 717...
710
 
717
 
711
   if(Looping_Links || Looping_Rechts)   Looping_Roll = 1; else Looping_Roll = 0;
718
   if(Looping_Links || Looping_Rechts)   Looping_Roll = 1; else Looping_Roll = 0;
712
   if(Looping_Oben  || Looping_Unten) {Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0;
719
   if(Looping_Oben  || Looping_Unten) {Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0;
Line 713... Line -...
713
  } // Ende neue Funken-Werte
-
 
714
 
720
  } // Ende neue Funken-Werte
715
  if(Looping_Roll) beeptime = 100;
721
 
716
  if(Looping_Roll || Looping_Nick)
722
  if(Looping_Roll || Looping_Nick)
717
   {
723
   {
Line 1208... Line 1214...
1208
// Roll-Achse
1214
// Roll-Achse
1209
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1215
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1210
        DiffRoll = MesswertRoll - StickRoll;    // Differenz bestimmen
1216
        DiffRoll = MesswertRoll - StickRoll;    // Differenz bestimmen
1211
    if(IntegralFaktor) SummeRoll += IntegralRoll * IntegralFaktor - StickRoll;// I-Anteil bei Winkelregelung
1217
    if(IntegralFaktor) SummeRoll += IntegralRoll * IntegralFaktor - StickRoll;// I-Anteil bei Winkelregelung
1212
    else                 SummeRoll += DiffRoll;  // I-Anteil bei HH
1218
    else                 SummeRoll += DiffRoll;  // I-Anteil bei HH
1213
    if(SummeRoll >  16000) SummeRoll =  16000;
1219
    if(SummeRoll >  (STICK_GAIN * 16000L)) SummeRoll =  (STICK_GAIN * 16000L);
1214
    if(SummeRoll < -16000) SummeRoll = -16000;
1220
    if(SummeRoll < -(16000L * STICK_GAIN)) SummeRoll = -(16000L * STICK_GAIN);
1215
    pd_ergebnis = DiffRoll + Ki * SummeRoll;    // PI-Regler für Roll
1221
    pd_ergebnis = DiffRoll + Ki * SummeRoll;    // PI-Regler für Roll
1216
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1222
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1217
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1223
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1218
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1224
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1219
    // Motor Links
1225
    // Motor Links