Rev 1596 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1596 | Rev 1630 | ||
---|---|---|---|
Line 157... | Line 157... | ||
157 | volatile unsigned char FCFlags = 0; |
157 | volatile unsigned char FCFlags = 0; |
158 | long GIER_GRAD_FAKTOR = 1291; |
158 | long GIER_GRAD_FAKTOR = 1291; |
159 | signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
159 | signed int KopplungsteilNickRoll,KopplungsteilRollNick; |
160 | signed int tmp_motorwert[MAX_MOTORS]; |
160 | signed int tmp_motorwert[MAX_MOTORS]; |
161 | char VarioCharacter = ' '; |
161 | char VarioCharacter = ' '; |
- | 162 | int isCalibrated = 0; // by Znib |
|
- | 163 | int horizontalGas = K_GIER, horizontalNick = K_ROLL; // by Znib |
|
Line 162... | Line 164... | ||
162 | 164 | ||
163 | #define LIMIT_MIN(value, min) {if(value <= min) value = min;} |
165 | #define LIMIT_MIN(value, min) {if(value <= min) value = min;} |
164 | #define LIMIT_MAX(value, max) {if(value >= max) value = max;} |
166 | #define LIMIT_MAX(value, max) {if(value >= max) value = max;} |
Line 543... | Line 545... | ||
543 | CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability); |
545 | CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability); |
544 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl); |
546 | CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl); |
545 | Ki = 10300 / (Parameter_I_Faktor + 1); |
547 | Ki = 10300 / (Parameter_I_Faktor + 1); |
546 | MAX_GAS = EE_Parameter.Gas_Max; |
548 | MAX_GAS = EE_Parameter.Gas_Max; |
547 | MIN_GAS = EE_Parameter.Gas_Min; |
549 | MIN_GAS = EE_Parameter.Gas_Min; |
- | 550 | ||
- | 551 | // by Znib |
|
- | 552 | if (Parameter_UserParam1 == 1 || Parameter_UserParam1 == 4) |
|
- | 553 | { |
|
- | 554 | // mode 1 oder 4 |
|
- | 555 | horizontalGas = K_ROLL; |
|
- | 556 | horizontalNick = K_GIER; |
|
- | 557 | } |
|
- | 558 | else |
|
- | 559 | { |
|
- | 560 | horizontalGas = K_GIER; |
|
- | 561 | horizontalNick = K_ROLL; |
|
- | 562 | } |
|
548 | } |
563 | } |
Line 549... | Line 564... | ||
549 | 564 | ||
550 | //############################################################################ |
565 | //############################################################################ |
551 | // |
566 | // |
Line 626... | Line 641... | ||
626 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
641 | if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0) |
627 | { |
642 | { |
628 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
643 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
629 | // auf Nullwerte kalibrieren |
644 | // auf Nullwerte kalibrieren |
630 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
645 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
631 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) // Neutralwerte |
646 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] > 75) // Neutralwerte |
632 | { |
647 | { |
633 | if(++delay_neutral > 200) // nicht sofort |
648 | if(++delay_neutral > 200) // nicht sofort |
634 | { |
649 | { |
635 | GRN_OFF; |
650 | GRN_OFF; |
636 | MotorenEin = 0; |
651 | MotorenEin = 0; |
637 | delay_neutral = 0; |
652 | delay_neutral = 0; |
638 | modell_fliegt = 0; |
653 | modell_fliegt = 0; |
639 | if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70) |
654 | if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]]) > 70) |
640 | { |
655 | { |
641 | unsigned char setting=1; |
656 | unsigned char setting=1; |
642 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
657 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1; |
643 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
658 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2; |
644 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
659 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3; |
645 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
660 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4; |
646 | if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
661 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5; |
647 | SetActiveParamSetNumber(setting); // aktiven Datensatz merken |
662 | SetActiveParamSetNumber(setting); // aktiven Datensatz merken |
648 | } |
663 | } |
649 | // else |
664 | // else |
650 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
665 | if(abs(PPM_in[EE_Parameter.Kanalbelegung[horizontalNick]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) |
651 | { |
666 | { |
652 | WinkelOut.CalcState = 1; |
667 | WinkelOut.CalcState = 1; |
653 | beeptime = 1000; |
668 | beeptime = 1000; |
654 | } |
669 | } |
655 | else |
670 | else |
Line 662... | Line 677... | ||
662 | if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset(); |
677 | if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset(); |
663 | } |
678 | } |
664 | ServoActive = 0; |
679 | ServoActive = 0; |
665 | SetNeutral(); |
680 | SetNeutral(); |
666 | ServoActive = 1; |
681 | ServoActive = 1; |
- | 682 | isCalibrated = 1; // by Znib |
|
667 | DDRD |=0x80; // enable J7 -> Servo signal |
683 | DDRD |=0x80; // enable J7 -> Servo signal |
668 | Piep(GetActiveParamSetNumber(),120); |
684 | Piep(GetActiveParamSetNumber(),120); |
669 | } |
685 | } |
670 | } |
686 | } |
671 | } |
687 | } |
672 | else |
688 | else |
673 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern |
689 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] < -75) // ACC Neutralwerte speichern |
674 | { |
690 | { |
675 | if(++delay_neutral > 200) // nicht sofort |
691 | if(++delay_neutral > 200) // nicht sofort |
676 | { |
692 | { |
677 | GRN_OFF; |
693 | GRN_OFF; |
678 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],0xff); // Werte löschen |
694 | eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],0xff); // Werte löschen |
Line 697... | Line 713... | ||
697 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
713 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120) |
698 | { |
714 | { |
699 | // Motoren Starten |
715 | // Motoren Starten |
700 | if(!MotorenEin) |
716 | if(!MotorenEin) |
701 | { |
717 | { |
702 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) |
718 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] < -75 && |
- | 719 | (Parameter_UserParam2 == 0 || isCalibrated == 1)) |
|
703 | { |
720 | { |
704 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
721 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
705 | // Einschalten |
722 | // Einschalten |
706 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
723 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
707 | if(++delay_einschalten > 200) |
724 | if(++delay_einschalten > 200) |
Line 726... | Line 743... | ||
726 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
743 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
727 | // Auschalten |
744 | // Auschalten |
728 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
745 | // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
729 | else // only if motors are running |
746 | else // only if motors are running |
730 | { |
747 | { |
731 | if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) |
748 | if(PPM_in[EE_Parameter.Kanalbelegung[horizontalGas]] > 75) |
732 | { |
749 | { |
733 | if(++delay_ausschalten > 200) // nicht sofort |
750 | if(++delay_ausschalten > 200) // nicht sofort |
734 | { |
751 | { |
735 | MotorenEin = 0; |
752 | MotorenEin = 0; |
736 | delay_ausschalten = 0; |
753 | delay_ausschalten = 0; |