Rev 1021 | Rev 1051 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1021 | Rev 1036 | ||
---|---|---|---|
Line 164... | Line 164... | ||
164 | AdNeutralRoll = 0; |
164 | AdNeutralRoll = 0; |
165 | AdNeutralGier = 0; |
165 | AdNeutralGier = 0; |
166 | AdNeutralGierBias = 0; |
166 | AdNeutralGierBias = 0; |
167 | Parameter_AchsKopplung1 = 0; |
167 | Parameter_AchsKopplung1 = 0; |
168 | Parameter_AchsGegenKopplung1 = 0; |
168 | Parameter_AchsGegenKopplung1 = 0; |
- | 169 | ExpandBaro = 0; |
|
169 | CalibrierMittelwert(); |
170 | CalibrierMittelwert(); |
170 | Delay_ms_Mess(100); |
171 | Delay_ms_Mess(100); |
171 | CalibrierMittelwert(); |
172 | CalibrierMittelwert(); |
172 | if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert? |
173 | if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert? |
173 | { |
174 | { |
Line 1065... | Line 1066... | ||
1065 | w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
1066 | w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln |
1066 | v = abs(IntegralRoll /512); |
1067 | v = abs(IntegralRoll /512); |
1067 | if(v > w) w = v; // grösste Neigung ermitteln |
1068 | if(v > w) w = v; // grösste Neigung ermitteln |
1068 | korrektur = w / 8 + 1; |
1069 | korrektur = w / 8 + 1; |
1069 | fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; |
1070 | fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180; |
- | 1071 | if(NeueKompassRichtungMerken) |
|
- | 1072 | { |
|
- | 1073 | fehler = 0; |
|
1070 | //DebugOut.Analog[25] = KompassSignalSchlecht; |
1074 | ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR; |
- | 1075 | } |
|
1071 | if(!KompassSignalSchlecht && w < 25) |
1076 | if(!KompassSignalSchlecht && w < 25) |
1072 | { |
1077 | { |
1073 | GierGyroFehler += fehler; |
1078 | GierGyroFehler += fehler; |
1074 | if(NeueKompassRichtungMerken) |
1079 | if(NeueKompassRichtungMerken) |
1075 | { |
1080 | { |
Line 1185... | Line 1190... | ||
1185 | // Die Höhenregelung schwächt lediglich das Gas ab, erhöht es allerdings nicht |
1190 | // Die Höhenregelung schwächt lediglich das Gas ab, erhöht es allerdings nicht |
1186 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1191 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1187 | //OCR0B = 180 - (Poti1 + 120) / 4; |
1192 | //OCR0B = 180 - (Poti1 + 120) / 4; |
1188 | //DruckOffsetSetting = OCR0B; |
1193 | //DruckOffsetSetting = OCR0B; |
1189 | GasMischanteil *= STICK_GAIN; |
1194 | GasMischanteil *= STICK_GAIN; |
- | 1195 | /* |
|
- | 1196 | if(Poti1 > 200) {OCR0A = DruckOffsetSetting - 16; ExpandBaro = 16; }else |
|
- | 1197 | if(Poti1 > 150) {OCR0A = DruckOffsetSetting - 8; ExpandBaro = 8; }else |
|
- | 1198 | if(Poti1 > 100) {OCR0A = DruckOffsetSetting - 4; ExpandBaro = 4; }else |
|
- | 1199 | if(Poti1 > 50) {OCR0A = DruckOffsetSetting - 2; ExpandBaro = 1; }else |
|
- | 1200 | {OCR0A = DruckOffsetSetting; ExpandBaro = 0;} |
|
1190 | 1201 | */ |
|
1191 | if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung |
1202 | if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung |
1192 | { |
1203 | { |
1193 | int tmp_int; |
1204 | int tmp_int; |
- | 1205 | static char delay = 100; |
|
1194 | if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert |
1206 | if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert |
1195 | { |
1207 | { |
1196 | if(((EE_Parameter.BitConfig & CFG_HIGHT_3SWITCH) && ((Parameter_MaxHoehe > 50) && (Parameter_MaxHoehe < 180))) || |
1208 | if(((EE_Parameter.BitConfig & CFG_HIGHT_3SWITCH) && ((Parameter_MaxHoehe > 80) && (Parameter_MaxHoehe < 140))) || |
1197 | (!(EE_Parameter.BitConfig & CFG_HIGHT_3SWITCH) && (Parameter_MaxHoehe < 50))) |
1209 | (!(EE_Parameter.BitConfig & CFG_HIGHT_3SWITCH) && (Parameter_MaxHoehe < 50))) |
1198 | { |
1210 | { |
- | 1211 | if(!delay--) |
|
- | 1212 | { |
|
- | 1213 | if(MessLuftdruck > 1000) |
|
- | 1214 | { |
|
- | 1215 | ExpandBaro -= 10; |
|
- | 1216 | OCR0A = DruckOffsetSetting - ExpandBaro; |
|
- | 1217 | beeptime = 300; |
|
- | 1218 | delay = 250; |
|
- | 1219 | } |
|
- | 1220 | else |
|
- | 1221 | if(MessLuftdruck < 100) |
|
- | 1222 | { |
|
- | 1223 | ExpandBaro += 10; |
|
- | 1224 | OCR0A = DruckOffsetSetting - ExpandBaro; |
|
- | 1225 | beeptime = 300; |
|
- | 1226 | delay = 250; |
|
- | 1227 | } |
|
- | 1228 | else |
|
- | 1229 | { |
|
1199 | SollHoehe = HoehenWert - 20; // Parameter_MaxHoehe ist der PPM-Wert des Schalters |
1230 | SollHoehe = HoehenWert - 20; // Parameter_MaxHoehe ist der PPM-Wert des Schalters |
1200 | HoehenReglerAktiv = 0; |
1231 | HoehenReglerAktiv = 0; |
- | 1232 | delay = 1; |
|
- | 1233 | } |
|
- | 1234 | } |
|
1201 | } |
1235 | } |
1202 | else |
1236 | else |
- | 1237 | { |
|
1203 | HoehenReglerAktiv = 1; |
1238 | HoehenReglerAktiv = 1; |
- | 1239 | delay = 200; |
|
- | 1240 | } |
|
1204 | } |
1241 | } |
1205 | else |
1242 | else |
1206 | { |
1243 | { |
1207 | SollHoehe = ((int) ExternHoehenValue + (int) Parameter_MaxHoehe) * (int)EE_Parameter.Hoehe_Verstaerkung - 20; |
1244 | SollHoehe = ((int) ExternHoehenValue + (int) Parameter_MaxHoehe) * (int)EE_Parameter.Hoehe_Verstaerkung - 20; |
1208 | HoehenReglerAktiv = 1; |
1245 | HoehenReglerAktiv = 1; |