Subversion Repositories FlightCtrl

Rev

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

Rev 1153 Rev 1155
Line 147... Line 147...
147
unsigned int  modell_fliegt = 0;
147
unsigned int  modell_fliegt = 0;
148
unsigned char MikroKopterFlags = 0;
148
unsigned char MikroKopterFlags = 0;
149
long GIER_GRAD_FAKTOR = 1291;
149
long GIER_GRAD_FAKTOR = 1291;
150
signed int KopplungsteilNickRoll,KopplungsteilRollNick;
150
signed int KopplungsteilNickRoll,KopplungsteilRollNick;
Line -... Line 151...
-
 
151
 
151
 
152
 
152
void Piep(unsigned char Anzahl)
153
void Piep(unsigned char Anzahl)
153
{
154
{
154
 while(Anzahl--)
155
 while(Anzahl--)
155
 {
156
 {
Line 196... Line 197...
196
     AdNeutralGierBias = AdNeutralGier;
197
     AdNeutralGierBias = AdNeutralGier;
197
     StartNeutralRoll = AdNeutralRoll;
198
     StartNeutralRoll = AdNeutralRoll;
198
     StartNeutralNick = AdNeutralNick;
199
     StartNeutralNick = AdNeutralNick;
199
    if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4)
200
    if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4)
200
    {
201
    {
201
      NeutralAccY = abs(Mittelwert_AccRoll) / ACC_AMPLIFY;
202
      NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
202
          NeutralAccX = abs(Mittelwert_AccNick) / ACC_AMPLIFY;
203
          NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
203
          NeutralAccZ = Aktuell_az;
204
          NeutralAccZ = Aktuell_az;
204
    }
205
    }
205
    else
206
    else
206
    {
207
    {
207
      NeutralAccX = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1]);
208
      NeutralAccX = (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) * 256 + (int)eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1]);
Line 265... Line 266...
265
    NaviAccNick    += AdWertAccNick;
266
    NaviAccNick    += AdWertAccNick;
266
    NaviAccRoll    += AdWertAccRoll;
267
    NaviAccRoll    += AdWertAccRoll;
267
    NaviCntAcc++;
268
    NaviCntAcc++;
268
    IntegralAccZ  += Aktuell_az - NeutralAccZ;
269
    IntegralAccZ  += Aktuell_az - NeutralAccZ;
Line -... Line 270...
-
 
270
 
-
 
271
if(abs(Mittelwert_AccRoll > 50)) { DebugOut.Analog[16]++; DebugOut.Analog[17] = Mittelwert_AccRoll;};
-
 
272
 
-
 
273
//++++++++++++++++++++++++++++++++++++++++++++++++
-
 
274
// ADC einschalten
-
 
275
        AdReady = 0;
-
 
276
    ANALOG_ON;
-
 
277
//++++++++++++++++++++++++++++++++++++++++++++++++
269
 
278
 
270
    if(Mess_IntegralRoll > 93000L) winkel_roll = 93000L;
279
    if(Mess_IntegralRoll > 93000L) winkel_roll = 93000L;
271
        else if(Mess_IntegralRoll <-93000L) winkel_roll = -93000L;
280
        else if(Mess_IntegralRoll <-93000L) winkel_roll = -93000L;
Line 272... Line 281...
272
        else winkel_roll = Mess_IntegralRoll;
281
        else winkel_roll = Mess_IntegralRoll;
Line 366... Line 375...
366
                         {
375
                         {
367
              if(AdWertNick > 2000) MesswertNick = +1000;
376
              if(AdWertNick > 2000) MesswertNick = +1000;
368
              if(AdWertNick > 2015) MesswertNick = +2000;
377
              if(AdWertNick > 2015) MesswertNick = +2000;
369
                         }
378
                         }
Line 370... Line -...
370
 
-
 
371
//++++++++++++++++++++++++++++++++++++++++++++++++
-
 
372
// ADC einschalten
-
 
373
    ANALOG_ON;
-
 
374
//++++++++++++++++++++++++++++++++++++++++++++++++
-
 
375
 
379
 
376
    Integral_Gier  = Mess_Integral_Gier;
380
    Integral_Gier  = Mess_Integral_Gier;
377
    IntegralNick = Mess_IntegralNick;
381
    IntegralNick = Mess_IntegralNick;
378
    IntegralRoll = Mess_IntegralRoll;
382
    IntegralRoll = Mess_IntegralRoll;
379
    IntegralNick2 = Mess_IntegralNick2;
383
    IntegralNick2 = Mess_IntegralNick2;
Line 544... Line 548...
544
//############################################################################
548
//############################################################################
545
//
549
//
546
void MotorRegler(void)
550
void MotorRegler(void)
547
//############################################################################
551
//############################################################################
548
{
552
{
549
         int motorwert,pd_ergebnis, pd_ergebnis_nick,pd_ergebnis_roll,h,tmp_int;
553
         int motorwert,pd_ergebnis_nick,pd_ergebnis_roll,h,tmp_int;
550
         int GierMischanteil,GasMischanteil;
554
         int GierMischanteil,GasMischanteil;
551
     static long SummeNick=0,SummeRoll=0;
555
     static long SummeNick=0,SummeRoll=0;
552
     static long sollGier = 0,tmp_long,tmp_long2;
556
     static long sollGier = 0,tmp_long,tmp_long2;
553
     static long IntegralFehlerNick = 0;
557
     static long IntegralFehlerNick = 0;
554
     static long IntegralFehlerRoll = 0;
558
     static long IntegralFehlerRoll = 0;
Line 924... Line 928...
924
     if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)
928
     if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)
925
      {
929
      {
926
      tmp_long  /= 3;
930
      tmp_long  /= 3;
927
      tmp_long2 /= 3;
931
      tmp_long2 /= 3;
928
      }
932
      }
-
 
933
 
929
 #define AUSGLEICH 32
934
#define AUSGLEICH  32
930
      if(tmp_long >  AUSGLEICH)  tmp_long  = AUSGLEICH;
935
      if(tmp_long >  AUSGLEICH)  tmp_long  = AUSGLEICH;
931
      if(tmp_long < -AUSGLEICH)  tmp_long  =-AUSGLEICH;
936
      if(tmp_long < -AUSGLEICH)  tmp_long  =-AUSGLEICH;
932
      if(tmp_long2 > AUSGLEICH)  tmp_long2 = AUSGLEICH;
937
      if(tmp_long2 > AUSGLEICH)  tmp_long2 = AUSGLEICH;
933
      if(tmp_long2 <-AUSGLEICH)  tmp_long2 =-AUSGLEICH;
938
      if(tmp_long2 <-AUSGLEICH)  tmp_long2 =-AUSGLEICH;
934
     }
939
     }
Line 1336... Line 1341...
1336
     }
1341
     }
1337
  }
1342
  }
1338
  if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN;
1343
  if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN;
Line 1339... Line -...
1339
 
-
 
1340
 
1344
 
1341
#ifdef OCTO
1345
 
1342
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1346
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1343
// + Mischer und PI-Regler
1347
// + Mischer und PI-Regler
1344
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1348
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line 1389... Line 1393...
1389
    pd_ergebnis_roll = DiffRoll + SummeRoll / Ki;       // PI-Regler für Roll
1393
    pd_ergebnis_roll = DiffRoll + SummeRoll / Ki;       // PI-Regler für Roll
1390
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1394
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1391
    if(pd_ergebnis_roll >  tmp_int) pd_ergebnis_roll =  tmp_int;
1395
    if(pd_ergebnis_roll >  tmp_int) pd_ergebnis_roll =  tmp_int;
1392
    if(pd_ergebnis_roll < -tmp_int) pd_ergebnis_roll = -tmp_int;
1396
    if(pd_ergebnis_roll < -tmp_int) pd_ergebnis_roll = -tmp_int;
Line -... Line 1397...
-
 
1397
 
-
 
1398
#ifndef OCTO
-
 
1399
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1400
// Quadro-Mischer 
-
 
1401
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1402
    motorwert = GasMischanteil + pd_ergebnis_nick + GierMischanteil;      // Mischer
-
 
1403
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
-
 
1404
    Motor_Vorne = motorwert;
-
 
1405
 
-
 
1406
        motorwert = GasMischanteil - pd_ergebnis_nick + GierMischanteil;
-
 
1407
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
-
 
1408
        Motor_Hinten = motorwert;
-
 
1409
 
-
 
1410
    motorwert = GasMischanteil + pd_ergebnis_roll - GierMischanteil;
-
 
1411
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
-
 
1412
    Motor_Links = motorwert;
-
 
1413
 
-
 
1414
        motorwert = GasMischanteil - pd_ergebnis_roll - GierMischanteil;
-
 
1415
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
-
 
1416
    Motor_Rechts = motorwert;
-
 
1417
   // +++++++++++++++++++++++++++++++++++++++++++++++
-
 
1418
 
1393
 
1419
#else 
1394
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1420
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1395
// Octo-Mischer 
1421
// Octo-Mischer 
1396
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1422
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1397
    motorwert = GasMischanteil + pd_ergebnis_nick + pd_ergebnis_roll + GierMischanteil;  
-
 
1398
    motorwert /= STICK_GAIN;
-
 
1399
        if ((motorwert < 0)) motorwert = 0;
-
 
1400
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
1423
    motorwert = GasMischanteil + pd_ergebnis_nick + pd_ergebnis_roll + GierMischanteil;  
1401
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
1424
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Line 1402... Line 1425...
1402
        Motor1 = motorwert;
1425
        Motor1 = motorwert;
1403
 
-
 
1404
    motorwert = GasMischanteil + pd_ergebnis_nick - pd_ergebnis_roll - GierMischanteil;  
-
 
1405
    motorwert /= STICK_GAIN;
-
 
1406
        if ((motorwert < 0)) motorwert = 0;
1426
 
1407
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
1427
    motorwert = GasMischanteil + pd_ergebnis_nick - pd_ergebnis_roll - GierMischanteil;  
Line 1408... Line 1428...
1408
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
1428
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
1409
        Motor2 = motorwert;
-
 
1410
 
-
 
1411
        motorwert = GasMischanteil + pd_ergebnis_nick - pd_ergebnis_roll + GierMischanteil;
-
 
1412
    motorwert /= STICK_GAIN;
1429
        Motor2 = motorwert;
1413
        if ((motorwert < 0)) motorwert = 0;
1430
 
Line 1414... Line 1431...
1414
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
1431
        motorwert = GasMischanteil + pd_ergebnis_nick - pd_ergebnis_roll + GierMischanteil;
1415
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
-
 
1416
    Motor3 = motorwert;
-
 
1417
 
-
 
1418
        motorwert = GasMischanteil - pd_ergebnis_nick - pd_ergebnis_roll - GierMischanteil;
1432
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
1419
    motorwert /= STICK_GAIN;
1433
    Motor3 = motorwert;
Line 1420... Line 1434...
1420
        if ((motorwert < 0)) motorwert = 0;
1434
 
1421
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
-
 
1422
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
-
 
1423
    Motor4 = motorwert;
-
 
1424
 
1435
        motorwert = GasMischanteil - pd_ergebnis_nick - pd_ergebnis_roll - GierMischanteil;
1425
        motorwert = GasMischanteil - pd_ergebnis_nick - pd_ergebnis_roll + GierMischanteil;
1436
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
Line 1426... Line 1437...
1426
    motorwert /= STICK_GAIN;
1437
    Motor4 = motorwert;
1427
        if ((motorwert < 0)) motorwert = 0;
-
 
1428
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
-
 
1429
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
-
 
1430
        Motor5 = motorwert;
1438
 
1431
 
1439
        motorwert = GasMischanteil - pd_ergebnis_nick - pd_ergebnis_roll + GierMischanteil;
Line 1432... Line 1440...
1432
        motorwert = GasMischanteil - pd_ergebnis_nick + pd_ergebnis_roll - GierMischanteil;
1440
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
1433
    motorwert /= STICK_GAIN;
-
 
1434
        if ((motorwert < 0)) motorwert = 0;
-
 
1435
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
-
 
1436
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
1441
        Motor5 = motorwert;
1437
        Motor6 = motorwert;
1442
 
Line 1438... Line 1443...
1438
 
1443
        motorwert = GasMischanteil - pd_ergebnis_nick + pd_ergebnis_roll - GierMischanteil;
1439
    motorwert = GasMischanteil - pd_ergebnis_nick + pd_ergebnis_roll + GierMischanteil;
-
 
1440
    motorwert /= STICK_GAIN;
-
 
1441
        if ((motorwert < 0)) motorwert = 0;
-
 
1442
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
1444
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
1443
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
1445
        Motor6 = motorwert;
1444
    Motor7 = motorwert;
1446
 
-
 
1447
    motorwert = GasMischanteil - pd_ergebnis_nick + pd_ergebnis_roll + GierMischanteil;
1445
 
1448
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
1446
    motorwert = GasMischanteil + pd_ergebnis_nick + pd_ergebnis_roll - GierMischanteil;
1449
    Motor7 = motorwert;
1447
    motorwert /= STICK_GAIN;
1450
 
1448
        if ((motorwert < 0)) motorwert = 0;
1451
    motorwert = GasMischanteil + pd_ergebnis_nick + pd_ergebnis_roll - GierMischanteil;
1449
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
1452
    motorwert /= STICK_GAIN; CHECK_MIN_MAX(motorwert,MIN_GAS,MAX_GAS);
1450
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
1453
    Motor8 = motorwert;
1451
    Motor8 = motorwert;
1454
   // +++++++++++++++++++++++++++++++++++++++++++++++
1452
   // +++++++++++++++++++++++++++++++++++++++++++++++
-
 
1453
/*
-
 
1454
if(Poti1 > 20)  Motor1 = 0;
-
 
1455
if(Poti1 > 90)  Motor6 = 0;
-
 
1456
if(Poti1 > 140) Motor2 = 0;
-
 
1457
if(Poti1 > 200) Motor7 = 0;
-
 
1458
*/
-
 
1459
}
-
 
1460
#else 
-
 
1461
 
-
 
1462
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1463
// + Mischer und PI-Regler
-
 
1464
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1465
  DebugOut.Analog[7] = GasMischanteil;
-
 
1466
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1467
// Gier-Anteil
-
 
1468
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1469
#define MUL_G  1.0
-
 
1470
    GierMischanteil = MesswertGier - sollGier * STICK_GAIN;     // Regler für Gier
-
 
1471
//GierMischanteil = 0;
-
 
1472
#define MIN_GIERGAS  (40*STICK_GAIN)  // unter diesem Gaswert trotzdem Gieren
-
 
1473
   if(GasMischanteil > MIN_GIERGAS)
-
 
1474
    {
-
 
1475
     if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
-
 
1476
     if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
-
 
1477
    }
-
 
1478
    else
-
 
1479
    {
-
 
1480
     if(GierMischanteil > (MIN_GIERGAS / 2))  GierMischanteil = MIN_GIERGAS / 2;
-
 
1481
     if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
-
 
1482
    }
-
 
1483
    tmp_int = MAX_GAS*STICK_GAIN;
-
 
1484
    if(GierMischanteil > ((tmp_int - GasMischanteil))) GierMischanteil = ((tmp_int - GasMischanteil));
-
 
1485
    if(GierMischanteil < -((tmp_int - GasMischanteil))) GierMischanteil = -((tmp_int - GasMischanteil));
-
 
1486
 
-
 
1487
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1488
// Nick-Achse
-
 
1489
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1490
    DiffNick = MesswertNick - StickNick;        // Differenz bestimmen
-
 
1491
    if(IntegralFaktor) SummeNick += IntegralNickMalFaktor - StickNick; // I-Anteil bei Winkelregelung
-
 
1492
    else  SummeNick += DiffNick; // I-Anteil bei HH
-
 
1493
    if(SummeNick >  (STICK_GAIN * 16000L)) SummeNick =  (STICK_GAIN * 16000L);
-
 
1494
    if(SummeNick < -(16000L * STICK_GAIN)) SummeNick = -(16000L * STICK_GAIN);
-
 
1495
    pd_ergebnis = DiffNick + SummeNick / Ki; // PI-Regler für Nick
-
 
1496
    // Motor Vorn
-
 
1497
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
-
 
1498
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
-
 
1499
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
-
 
1500
 
-
 
1501
    motorwert = GasMischanteil + pd_ergebnis + GierMischanteil;   // Mischer
-
 
1502
    motorwert /= STICK_GAIN;
-
 
1503
        if ((motorwert < 0)) motorwert = 0;
-
 
1504
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
-
 
1505
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
-
 
1506
        Motor_Vorne = motorwert;
-
 
1507
    // Motor Heck
-
 
1508
        motorwert = GasMischanteil - pd_ergebnis + GierMischanteil;
-
 
1509
    motorwert /= STICK_GAIN;
-
 
1510
        if ((motorwert < 0)) motorwert = 0;
-
 
1511
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
-
 
1512
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
-
 
1513
        Motor_Hinten = motorwert;
-
 
1514
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1515
// Roll-Achse
-
 
1516
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
1517
        DiffRoll = MesswertRoll - StickRoll;    // Differenz bestimmen
-
 
1518
    if(IntegralFaktor) SummeRoll += IntegralRollMalFaktor - StickRoll;// I-Anteil bei Winkelregelung
-
 
1519
    else                 SummeRoll += DiffRoll;  // I-Anteil bei HH
-
 
1520
    if(SummeRoll >  (STICK_GAIN * 16000L)) SummeRoll =  (STICK_GAIN * 16000L);
-
 
1521
    if(SummeRoll < -(16000L * STICK_GAIN)) SummeRoll = -(16000L * STICK_GAIN);
-
 
1522
    pd_ergebnis = DiffRoll + SummeRoll / Ki;    // PI-Regler für Roll
-
 
1523
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
-
 
1524
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
-
 
1525
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
-
 
1526
    // Motor Links
-
 
1527
    motorwert = GasMischanteil + pd_ergebnis - GierMischanteil;
-
 
1528
    motorwert /= STICK_GAIN;
-
 
1529
        if ((motorwert < 0)) motorwert = 0;
-
 
1530
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
-
 
1531
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
-
 
1532
    Motor_Links = motorwert;
-
 
1533
    // Motor Rechts
-
 
1534
        motorwert = GasMischanteil - pd_ergebnis - GierMischanteil;
-
 
1535
    motorwert /= STICK_GAIN;
-
 
1536
        if ((motorwert < 0)) motorwert = 0;
-
 
1537
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
-
 
1538
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
-
 
1539
    Motor_Rechts = motorwert;
-