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 | // +++++++++++++++++++++++++++++++++++++++++++++++ |