Subversion Repositories FlightCtrl

Rev

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

Rev 854 Rev 855
Line 74... Line 74...
74
volatile long Mess_Integral_Hoch = 0;
74
volatile long Mess_Integral_Hoch = 0;
75
volatile int  KompassValue = 0;
75
volatile int  KompassValue = 0;
76
volatile int  KompassStartwert = 0;
76
volatile int  KompassStartwert = 0;
77
volatile int  KompassRichtung = 0;
77
volatile int  KompassRichtung = 0;
78
unsigned int  KompassSignalSchlecht = 500;
78
unsigned int  KompassSignalSchlecht = 500;
79
unsigned char MAX_GAS,MIN_GAS;
79
unsigned char  MAX_GAS,MIN_GAS;
80
unsigned char Notlandung = 0;
80
unsigned char Notlandung = 0;
81
unsigned char HoehenReglerAktiv = 0;
81
unsigned char HoehenReglerAktiv = 0;
82
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
82
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
83
long  ErsatzKompass;
83
long  ErsatzKompass;
84
int   ErsatzKompassInGrad; // Kompasswert in Grad
84
int   ErsatzKompassInGrad; // Kompasswert in Grad
Line 627... Line 627...
627
/*   if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]) > MaxStickNick)
627
/*   if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]) > MaxStickNick)
628
     MaxStickNick = abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]); else MaxStickNick--;
628
     MaxStickNick = abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]); else MaxStickNick--;
629
   if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > MaxStickRoll)
629
   if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > MaxStickRoll)
630
     MaxStickRoll = abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]); else MaxStickRoll--;
630
     MaxStickRoll = abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]); else MaxStickRoll--;
631
*/
631
*/
632
    GyroFaktor     = ((float)Parameter_Gyro_P + 10.0) / 256.0;
632
    GyroFaktor     = ((float)Parameter_Gyro_P + 10.0) / (256.0/STICK_GAIN);
633
    IntegralFaktor = ((float) Parameter_Gyro_I) / 44000;
633
    IntegralFaktor = ((float) Parameter_Gyro_I) / (44000 / STICK_GAIN);
Line 634... Line 634...
634
 
634
 
635
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
635
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
636
//+ Digitale Steuerung per DubWise
636
//+ Digitale Steuerung per DubWise
637
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
637
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Line 647... Line 647...
647
    if(DubWiseKeys[0] & 8)  ExternStickGier = 50;else
647
    if(DubWiseKeys[0] & 8)  ExternStickGier = 50;else
648
    if(DubWiseKeys[0] & 4)  ExternStickGier =-50;else ExternStickGier = 0;
648
    if(DubWiseKeys[0] & 4)  ExternStickGier =-50;else ExternStickGier = 0;
649
    if(DubWiseKeys[0] & 2)  ExternHoehenValue++;
649
    if(DubWiseKeys[0] & 2)  ExternHoehenValue++;
650
    if(DubWiseKeys[0] & 16) ExternHoehenValue--;
650
    if(DubWiseKeys[0] & 16) ExternHoehenValue--;
Line 651... Line 651...
651
 
651
 
652
    StickNick += ExternStickNick / 8;
652
    StickNick += (STICK_GAIN * ExternStickNick) / 8;
653
    StickRoll += ExternStickRoll / 8;
653
    StickRoll += (STICK_GAIN * ExternStickRoll) / 8;
654
    StickGier += ExternStickGier;
654
    StickGier += STICK_GAIN * ExternStickGier;
655
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
655
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
656
//+ Analoge Steuerung per Seriell
656
//+ Analoge Steuerung per Seriell
657
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
657
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
658
   if(ExternControl.Config & 0x01 && Parameter_UserParam1 > 128)
658
   if(ExternControl.Config & 0x01 && Parameter_UserParam1 > 128)
Line 661... Line 661...
661
         StickRoll += (int) ExternControl.Roll * (int) EE_Parameter.Stick_P;
661
         StickRoll += (int) ExternControl.Roll * (int) EE_Parameter.Stick_P;
662
         StickGier += ExternControl.Gier;
662
         StickGier += ExternControl.Gier;
663
     ExternHoehenValue =  (int) ExternControl.Hight * (int)EE_Parameter.Hoehe_Verstaerkung;
663
     ExternHoehenValue =  (int) ExternControl.Hight * (int)EE_Parameter.Hoehe_Verstaerkung;
664
     if(ExternControl.Gas < StickGas) StickGas = ExternControl.Gas;
664
     if(ExternControl.Gas < StickGas) StickGas = ExternControl.Gas;
665
    }
665
    }
-
 
666
    if(StickGas < 0) StickGas = 0;
Line 666... Line 667...
666
 
667
 
667
    if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor =  0;
668
    if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor =  0;
668
    if(GyroFaktor < 0) GyroFaktor = 0;
669
    if(GyroFaktor < 0) GyroFaktor = 0;
Line 669... Line 670...
669
    if(IntegralFaktor < 0) IntegralFaktor = 0;
670
    if(IntegralFaktor < 0) IntegralFaktor = 0;
670
 
671
 
671
    if(abs(StickNick) > MaxStickNick) MaxStickNick = abs(StickNick); else MaxStickNick--;
672
    if(abs(StickNick/STICK_GAIN) > MaxStickNick) MaxStickNick = abs(StickNick); else MaxStickNick--;
Line 672... Line 673...
672
    if(abs(StickRoll) > MaxStickRoll) MaxStickRoll = abs(StickRoll); else MaxStickRoll--;
673
    if(abs(StickRoll/STICK_GAIN) > MaxStickRoll) MaxStickRoll = abs(StickRoll); else MaxStickRoll--;
673
    if(Notlandung)  {MaxStickNick = 0; MaxStickRoll = 0;}
674
    if(Notlandung)  {MaxStickNick = 0; MaxStickRoll = 0;}
674
 
675
 
Line 725... Line 726...
725
   if(Notlandung)
726
   if(Notlandung)
726
    {
727
    {
727
     StickGier = 0;
728
     StickGier = 0;
728
     StickNick = 0;
729
     StickNick = 0;
729
     StickRoll = 0;
730
     StickRoll = 0;
730
     GyroFaktor  = 0.1;
731
     GyroFaktor     = (float) 100 / (256.0 / STICK_GAIN);
731
     IntegralFaktor = 0.005;
732
     IntegralFaktor = (float) 120 / (44000 / STICK_GAIN);
732
     Looping_Roll = 0;
733
     Looping_Roll = 0;
733
     Looping_Nick = 0;
734
     Looping_Nick = 0;
734
    }  
735
    }  
Line 1085... Line 1086...
1085
 
1086
 
1086
    if(Looping_Nick) MesswertNick = MesswertNick * GyroFaktor;
1087
    if(Looping_Nick) MesswertNick = MesswertNick * GyroFaktor;
1087
    else             MesswertNick = IntegralNick * IntegralFaktor + MesswertNick * GyroFaktor;
1088
    else             MesswertNick = IntegralNick * IntegralFaktor + MesswertNick * GyroFaktor;
1088
    if(Looping_Roll) MesswertRoll = MesswertRoll * GyroFaktor;
1089
    if(Looping_Roll) MesswertRoll = MesswertRoll * GyroFaktor;
1089
    else             MesswertRoll = IntegralRoll * IntegralFaktor + MesswertRoll * GyroFaktor;
1090
    else             MesswertRoll = IntegralRoll * IntegralFaktor + MesswertRoll * GyroFaktor;
Line 1090... Line 1091...
1090
    MesswertGier = MesswertGier * (2 * GyroFaktor) + Integral_Gier * IntegralFaktor / 2;
1091
    MesswertGier =   MesswertGier * (2 * GyroFaktor) + Integral_Gier * IntegralFaktor / 2;
1091
 
1092
 
Line 1092... Line 1093...
1092
    DebugOut.Analog[21] = MesswertNick;
1093
    DebugOut.Analog[21] = MesswertNick;
Line 1105... Line 1106...
1105
// Höhenregelung
1106
// Höhenregelung
1106
// Die Höhenregelung schwächt lediglich das Gas ab, erhöht es allerdings nicht
1107
// Die Höhenregelung schwächt lediglich das Gas ab, erhöht es allerdings nicht
1107
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1108
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1108
//OCR0B = 180 - (Poti1 + 120) / 4;
1109
//OCR0B = 180 - (Poti1 + 120) / 4;
1109
//DruckOffsetSetting = OCR0B;
1110
//DruckOffsetSetting = OCR0B;
-
 
1111
  GasMischanteil *= STICK_GAIN;
-
 
1112
 
1110
 if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG))  // Höhenregelung
1113
 if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG))  // Höhenregelung
1111
  {
1114
  {
1112
    int tmp_int;
1115
    int tmp_int;
1113
    if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER)  // Regler wird über Schalter gesteuert
1116
    if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER)  // Regler wird über Schalter gesteuert
1114
    {
1117
    {
Line 1128... Line 1131...
1128
 
1131
 
1129
    if(Notlandung) SollHoehe = 0;
1132
    if(Notlandung) SollHoehe = 0;
1130
    h = HoehenWert;
1133
    h = HoehenWert;
1131
    if((h > SollHoehe) && HoehenReglerAktiv)      // zu hoch --> drosseln
1134
    if((h > SollHoehe) && HoehenReglerAktiv)      // zu hoch --> drosseln
1132
     {      
1135
     {      
1133
      h = ((h - SollHoehe) * (int) Parameter_Hoehe_P) / 16; // Differenz bestimmen --> P-Anteil
1136
      h = ((h - SollHoehe) * (int) Parameter_Hoehe_P) / (16 / STICK_GAIN); // Differenz bestimmen --> P-Anteil
1134
      h = GasMischanteil - h;         // vom Gas abziehen
1137
      h = GasMischanteil - h;         // vom Gas abziehen
1135
      h -= (HoeheD * Parameter_Luftdruck_D)/8;    // D-Anteil
1138
      h -= (HoeheD * Parameter_Luftdruck_D)/(8/STICK_GAIN);    // D-Anteil
1136
      tmp_int = ((Mess_Integral_Hoch / 512) * (signed long) Parameter_Hoehe_ACC_Wirkung) / 32;
1139
      tmp_int = ((Mess_Integral_Hoch / 512) * (signed long) Parameter_Hoehe_ACC_Wirkung) / (32 / STICK_GAIN);
1137
      if(tmp_int > 50) tmp_int = 50;
1140
      if(tmp_int > 50*STICK_GAIN) tmp_int = 50*STICK_GAIN;
1138
      else if(tmp_int < -50) tmp_int = -50;
1141
      else if(tmp_int < -(50*STICK_GAIN)) tmp_int = -(50*STICK_GAIN);
1139
      h -= tmp_int;
1142
      h -= tmp_int;
1140
      hoehenregler = (hoehenregler*15 + h) / 16;      
1143
      hoehenregler = (hoehenregler*15 + h) / 16;      
1141
      if(hoehenregler < EE_Parameter.Hoehe_MinGas) // nicht unter MIN
1144
      if(hoehenregler < EE_Parameter.Hoehe_MinGas * STICK_GAIN) // nicht unter MIN
1142
       {
1145
       {
1143
         if(GasMischanteil >= EE_Parameter.Hoehe_MinGas) hoehenregler = EE_Parameter.Hoehe_MinGas;
1146
         if(GasMischanteil >= EE_Parameter.Hoehe_MinGas * STICK_GAIN) hoehenregler = EE_Parameter.Hoehe_MinGas * STICK_GAIN;
1144
         if(GasMischanteil < EE_Parameter.Hoehe_MinGas) hoehenregler = GasMischanteil;
1147
         if(GasMischanteil < EE_Parameter.Hoehe_MinGas * STICK_GAIN) hoehenregler = GasMischanteil;
1145
       }  
1148
       }  
1146
      if(hoehenregler > GasMischanteil) hoehenregler = GasMischanteil; // nicht mehr als Gas
1149
      if(hoehenregler > GasMischanteil) hoehenregler = GasMischanteil; // nicht mehr als Gas
1147
      GasMischanteil = hoehenregler;
1150
      GasMischanteil = hoehenregler;
1148
     }
1151
     }
1149
  }
1152
  }
1150
  if(GasMischanteil > MAX_GAS - 20) GasMischanteil = MAX_GAS - 20;
1153
  if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN;
1151
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1154
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1152
// + Mischer und PI-Regler
1155
// + Mischer und PI-Regler
1153
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1156
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1154
  DebugOut.Analog[7] = GasMischanteil;
1157
  DebugOut.Analog[7] = GasMischanteil;
1155
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1158
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1156
// Gier-Anteil
1159
// Gier-Anteil
1157
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1160
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1158
#define MUL_G  1.0
1161
#define MUL_G  1.0
1159
    GierMischanteil = MesswertGier - sollGier;     // Regler für Gier
1162
    GierMischanteil = MesswertGier - sollGier * STICK_GAIN;     // Regler für Gier
1160
// GierMischanteil = 0;
1163
// GierMischanteil = 0;
1161
#define MIN_GIERGAS  35  // unter diesem Gaswert trotzdem Gieren
1164
#define MIN_GIERGAS  (40*STICK_GAIN)  // unter diesem Gaswert trotzdem Gieren
1162
   if(GasMischanteil > MIN_GIERGAS)
1165
   if(GasMischanteil > MIN_GIERGAS)
1163
    {
1166
    {
1164
     if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
1167
     if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
1165
     if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
1168
     if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
1166
    }
1169
    }
1167
    else
1170
    else
1168
    {
1171
    {
1169
     if(GierMischanteil > (MIN_GIERGAS / 2))  GierMischanteil = MIN_GIERGAS / 2;
1172
     if(GierMischanteil > (MIN_GIERGAS / 2))  GierMischanteil = MIN_GIERGAS / 2;
1170
     if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
1173
     if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
-
 
1174
    }
1171
    }
1175
    tmp_int = MAX_GAS*STICK_GAIN;
1172
    if(GierMischanteil > ((MAX_GAS - GasMischanteil))) GierMischanteil = ((MAX_GAS - GasMischanteil));
1176
    if(GierMischanteil > ((tmp_int - GasMischanteil))) GierMischanteil = ((tmp_int - GasMischanteil));
Line 1173... Line 1177...
1173
    if(GierMischanteil < -((MAX_GAS - GasMischanteil))) GierMischanteil = -((MAX_GAS - GasMischanteil));
1177
    if(GierMischanteil < -((tmp_int - GasMischanteil))) GierMischanteil = -((tmp_int - GasMischanteil));
1174
 
1178
 
1175
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1179
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1176
// Nick-Achse
1180
// Nick-Achse
1177
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1181
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1178
    DiffNick = MesswertNick - StickNick;        // Differenz bestimmen
1182
    DiffNick = MesswertNick - StickNick;        // Differenz bestimmen
1179
    if(IntegralFaktor) SummeNick += IntegralNick * IntegralFaktor - StickNick; // I-Anteil bei Winkelregelung
1183
    if(IntegralFaktor) SummeNick += IntegralNick * IntegralFaktor - StickNick; // I-Anteil bei Winkelregelung
1180
    else  SummeNick += DiffNick; // I-Anteil bei HH 
1184
    else  SummeNick += DiffNick; // I-Anteil bei HH 
1181
    if(SummeNick >  16000) SummeNick =  16000;
1185
    if(SummeNick >  (STICK_GAIN * 16000L)) SummeNick =  (STICK_GAIN * 16000L);
1182
    if(SummeNick < -16000) SummeNick = -16000;
1186
    if(SummeNick < -(16000L * STICK_GAIN)) SummeNick = -(16000L * STICK_GAIN);
1183
    pd_ergebnis = DiffNick + Ki * SummeNick; // PI-Regler für Nick                                      
1187
    pd_ergebnis = DiffNick + Ki * SummeNick; // PI-Regler für Nick                                      
1184
    // Motor Vorn
1188
    // Motor Vorn
1185
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1189
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
Line 1186... Line 1190...
1186
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1190
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
-
 
1191
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1187
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1192
 
1188
 
1193
    motorwert = GasMischanteil + pd_ergebnis + GierMischanteil;   // Mischer
1189
    motorwert = GasMischanteil + pd_ergebnis + GierMischanteil;   // Mischer
1194
    motorwert /= STICK_GAIN;
1190
        if ((motorwert < 0)) motorwert = 0;
1195
        if ((motorwert < 0)) motorwert = 0;
1191
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
1196
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
1192
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;       
1197
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;       
-
 
1198
        Motor_Vorne = motorwert;           
1193
        Motor_Vorne = motorwert;           
1199
    // Motor Heck
1194
    // Motor Heck
1200
        motorwert = GasMischanteil - pd_ergebnis + GierMischanteil;
1195
        motorwert = GasMischanteil - pd_ergebnis + GierMischanteil;
1201
    motorwert /= STICK_GAIN;
1196
        if ((motorwert < 0)) motorwert = 0;
1202
        if ((motorwert < 0)) motorwert = 0;
1197
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
1203
        else if(motorwert > MAX_GAS)        motorwert = MAX_GAS;
Line 1209... Line 1215...
1209
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1215
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
1210
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1216
    if(pd_ergebnis >  tmp_int) pd_ergebnis =  tmp_int;
1211
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1217
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;
1212
    // Motor Links
1218
    // Motor Links
1213
    motorwert = GasMischanteil + pd_ergebnis - GierMischanteil;
1219
    motorwert = GasMischanteil + pd_ergebnis - GierMischanteil;
1214
 
-
 
-
 
1220
    motorwert /= STICK_GAIN;
1215
        if ((motorwert < 0)) motorwert = 0;
1221
        if ((motorwert < 0)) motorwert = 0;
1216
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
1222
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
1217
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
1223
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;
1218
    Motor_Links = motorwert;           
1224
    Motor_Links = motorwert;           
1219
    // Motor Rechts
1225
    // Motor Rechts
1220
        motorwert = GasMischanteil - pd_ergebnis - GierMischanteil;
1226
        motorwert = GasMischanteil - pd_ergebnis - GierMischanteil;
1221
 
-
 
-
 
1227
    motorwert /= STICK_GAIN;
1222
        if ((motorwert < 0)) motorwert = 0;
1228
        if ((motorwert < 0)) motorwert = 0;
1223
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
1229
        else if(motorwert > MAX_GAS)            motorwert = MAX_GAS;
1224
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;       
1230
        if (motorwert < MIN_GAS)            motorwert = MIN_GAS;       
1225
    Motor_Rechts = motorwert;          
1231
    Motor_Rechts = motorwert;          
1226
   // +++++++++++++++++++++++++++++++++++++++++++++++
1232
   // +++++++++++++++++++++++++++++++++++++++++++++++