Rev 992 | Rev 1021 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 992 | Rev 993 | ||
---|---|---|---|
Line 130... | Line 130... | ||
130 | unsigned char Parameter_NaviGpsGain; |
130 | unsigned char Parameter_NaviGpsGain; |
131 | unsigned char Parameter_NaviGpsP; |
131 | unsigned char Parameter_NaviGpsP; |
132 | unsigned char Parameter_NaviGpsI; |
132 | unsigned char Parameter_NaviGpsI; |
133 | unsigned char Parameter_NaviGpsD; |
133 | unsigned char Parameter_NaviGpsD; |
134 | unsigned char Parameter_NaviGpsACC; |
134 | unsigned char Parameter_NaviGpsACC; |
- | 135 | unsigned char Parameter_NaviOperatingRadius; |
|
- | 136 | unsigned char Parameter_NaviWindCorrection; |
|
- | 137 | unsigned char Parameter_NaviSpeedCompensation; |
|
135 | unsigned char Parameter_ExternalControl; |
138 | unsigned char Parameter_ExternalControl; |
136 | struct mk_param_struct EE_Parameter; |
139 | struct mk_param_struct EE_Parameter; |
137 | signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20; |
140 | signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20; |
138 | int MaxStickNick = 0,MaxStickRoll = 0; |
141 | int MaxStickNick = 0,MaxStickRoll = 0; |
139 | unsigned int modell_fliegt = 0; |
142 | unsigned int modell_fliegt = 0; |
Line 406... | Line 409... | ||
406 | //############################################################################ |
409 | //############################################################################ |
407 | // Trägt ggf. das Poti als Parameter ein |
410 | // Trägt ggf. das Poti als Parameter ein |
408 | void ParameterZuordnung(void) |
411 | void ParameterZuordnung(void) |
409 | //############################################################################ |
412 | //############################################################################ |
410 | { |
413 | { |
411 | - | ||
412 | #define CHK_POTI_MM(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; if(b <= min) b = min; else if(b >= max) b = max;} |
414 | #define CHK_POTI_MM(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; if(b <= min) b = min; else if(b >= max) b = max;} |
413 | #define CHK_POTI(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; } |
415 | #define CHK_POTI(b,a,min,max) { if(a > 250) { if(a == 251) b = Poti1; else if(a == 252) b = Poti2; else if(a == 253) b = Poti3; else if(a == 254) b = Poti4;} else b = a; } |
414 | CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe,0,255); |
416 | CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe,0,255); |
415 | CHK_POTI_MM(Parameter_Luftdruck_D,EE_Parameter.Luftdruck_D,0,100); |
417 | CHK_POTI_MM(Parameter_Luftdruck_D,EE_Parameter.Luftdruck_D,0,100); |
416 | CHK_POTI_MM(Parameter_Hoehe_P,EE_Parameter.Hoehe_P,0,100); |
418 | CHK_POTI_MM(Parameter_Hoehe_P,EE_Parameter.Hoehe_P,0,100); |
Line 432... | Line 434... | ||
432 | CHK_POTI(Parameter_AchsKopplung1, EE_Parameter.AchsKopplung1,0,255); |
434 | CHK_POTI(Parameter_AchsKopplung1, EE_Parameter.AchsKopplung1,0,255); |
433 | CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255); |
435 | CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255); |
434 | CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability,0,255); |
436 | CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability,0,255); |
435 | CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,1,255); |
437 | CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,1,255); |
436 | CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,1,255); |
438 | CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,1,255); |
- | 439 | ||
437 | CHK_POTI(Parameter_NaviGpsModeControl,EE_Parameter.NaviGpsModeControl,0,255); |
440 | // CHK_POTI(Parameter_NaviGpsModeControl,EE_Parameter.NaviGpsModeControl,0,255); |
438 | CHK_POTI(Parameter_NaviGpsGain,EE_Parameter.NaviGpsGain,0,255); |
441 | //CHK_POTI(Parameter_NaviGpsGain,EE_Parameter.NaviGpsGain,0,255); |
439 | CHK_POTI(Parameter_NaviGpsP,EE_Parameter.NaviGpsP,0,255); |
442 | // CHK_POTI(Parameter_NaviGpsP,EE_Parameter.NaviGpsP,0,255); |
440 | CHK_POTI(Parameter_NaviGpsI,EE_Parameter.NaviGpsI,0,255); |
443 | // CHK_POTI(Parameter_NaviGpsI,EE_Parameter.NaviGpsI,0,255); |
441 | CHK_POTI(Parameter_NaviGpsD,EE_Parameter.NaviGpsD,0,255); |
444 | // CHK_POTI(Parameter_NaviGpsD,EE_Parameter.NaviGpsD,0,255); |
442 | CHK_POTI(Parameter_NaviGpsACC,EE_Parameter.NaviGpsACC,0,255); |
445 | // CHK_POTI(Parameter_NaviGpsACC,EE_Parameter.NaviGpsACC,0,255); |
- | 446 | // CHK_POTI_MM(Parameter_NaviOperatingRadius,EE_Parameter.NaviOperatingRadius,10,255); |
|
- | 447 | // CHK_POTI(Parameter_NaviWindCorrection,EE_Parameter.NaviWindCorrection,0,255); |
|
- | 448 | // CHK_POTI(Parameter_NaviSpeedCompensation,EE_Parameter.NaviSpeedCompensation,0,255); |
|
- | 449 | ||
443 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl,0,255); |
450 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl,0,255); |
Line 444... | Line 451... | ||
444 | 451 | ||
445 | Ki = (float) Parameter_I_Faktor * 0.0001; |
452 | Ki = (float) Parameter_I_Faktor * 0.0001; |
446 | MAX_GAS = EE_Parameter.Gas_Max; |
453 | MAX_GAS = EE_Parameter.Gas_Max; |
447 | MIN_GAS = EE_Parameter.Gas_Min; |
454 | MIN_GAS = EE_Parameter.Gas_Min; |
Line 448... | Line -... | ||
448 | } |
- | |
449 | 455 | } |
|
450 | 456 | ||
451 | 457 | ||
452 | 458 | ||
453 | //############################################################################ |
459 | //############################################################################ |
Line 556... | Line 562... | ||
556 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
562 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
557 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
563 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
558 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], setting); // aktiven Datensatz merken |
564 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], setting); // aktiven Datensatz merken |
559 | } |
565 | } |
560 | // else |
566 | // else |
561 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 20 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
567 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
562 | { |
568 | { |
563 | WinkelOut.CalcState = 1; |
569 | WinkelOut.CalcState = 1; |
564 | beeptime = 1000; |
570 | beeptime = 1000; |
565 | } |
571 | } |
566 | else |
572 | else |
Line 725... | Line 731... | ||
725 | if(Notlandung) {MaxStickNick = 0; MaxStickRoll = 0;} |
731 | if(Notlandung) {MaxStickNick = 0; MaxStickRoll = 0;} |
Line 726... | Line 732... | ||
726 | 732 | ||
727 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
733 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
728 | // Looping? |
734 | // Looping? |
729 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
735 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
730 | if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_LINKS) Looping_Links = 1; |
736 | if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_LINKS) Looping_Links = 1; |
731 | else |
737 | else |
732 | { |
738 | { |
733 | { |
739 | { |
734 | if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Links = 0; |
740 | if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Links = 0; |
735 | } |
741 | } |
736 | } |
742 | } |
737 | if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_RECHTS) Looping_Rechts = 1; |
743 | if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_RECHTS) Looping_Rechts = 1; |
738 | else |
744 | else |
739 | { |
745 | { |
740 | if(Looping_Rechts) // Hysterese |
746 | if(Looping_Rechts) // Hysterese |
741 | { |
747 | { |
742 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Rechts = 0; |
748 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Rechts = 0; |
743 | } |
749 | } |
Line 744... | Line 750... | ||
744 | } |
750 | } |
745 | 751 | ||
746 | if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_OBEN) Looping_Oben = 1; |
752 | if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_OBEN) Looping_Oben = 1; |
747 | else |
753 | else |
748 | { |
754 | { |
749 | if(Looping_Oben) // Hysterese |
755 | if(Looping_Oben) // Hysterese |
750 | { |
756 | { |
751 | if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Oben = 0; |
757 | if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Oben = 0; |
752 | } |
758 | } |
753 | } |
759 | } |
754 | if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_UNTEN) Looping_Unten = 1; |
760 | if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_UNTEN) Looping_Unten = 1; |
755 | else |
761 | else |
756 | { |
762 | { |
757 | if(Looping_Unten) // Hysterese |
763 | if(Looping_Unten) // Hysterese |
Line 1185... | Line 1191... | ||
1185 | if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung |
1191 | if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung |
1186 | { |
1192 | { |
1187 | int tmp_int; |
1193 | int tmp_int; |
1188 | if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert |
1194 | if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert |
1189 | { |
1195 | { |
- | 1196 | if(((EE_Parameter.BitConfig & CFG_HIGHT_3SWITCH) && ((Parameter_MaxHoehe > 50) && (Parameter_MaxHoehe < 180))) || |
|
1190 | if(Parameter_MaxHoehe < 50) |
1197 | (!(EE_Parameter.BitConfig & CFG_HIGHT_3SWITCH) && (Parameter_MaxHoehe < 50))) |
1191 | { |
1198 | { |
1192 | SollHoehe = HoehenWert - 20; // Parameter_MaxHoehe ist der PPM-Wert des Schalters |
1199 | SollHoehe = HoehenWert - 20; // Parameter_MaxHoehe ist der PPM-Wert des Schalters |
1193 | HoehenReglerAktiv = 0; |
1200 | HoehenReglerAktiv = 0; |
1194 | } |
1201 | } |
1195 | else |
1202 | else |