Subversion Repositories FlightCtrl

Rev

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

Rev 2345 Rev 2349
Line 136... Line 136...
136
unsigned char Parameter_UserParam4 = 0;
136
unsigned char Parameter_UserParam4 = 0;
137
unsigned char Parameter_UserParam5 = 0;
137
unsigned char Parameter_UserParam5 = 0;
138
unsigned char Parameter_UserParam6 = 0;
138
unsigned char Parameter_UserParam6 = 0;
139
unsigned char Parameter_UserParam7 = 0;
139
unsigned char Parameter_UserParam7 = 0;
140
unsigned char Parameter_UserParam8 = 0;
140
unsigned char Parameter_UserParam8 = 0;
-
 
141
unsigned char Parameter_NickControl = 100;
141
unsigned char Parameter_ServoNickControl = 100;
142
unsigned char Parameter_ServoNickControl = 100;
142
unsigned char Parameter_ServoRollControl = 100;
143
unsigned char Parameter_ServoRollControl = 100;
143
unsigned char Parameter_ServoNickComp = 50;
144
unsigned char Parameter_ServoNickComp = 50;
144
unsigned char Parameter_ServoRollComp = 85;
145
unsigned char Parameter_ServoRollComp = 85;
145
unsigned char Parameter_LoopGasLimit = 70;
146
unsigned char Parameter_LoopGasLimit = 70;
Line 375... Line 376...
375
   for(i=0;i<8;i++)
376
   for(i=0;i<8;i++)
376
    {
377
    {
377
     Poti[i] =  PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 127;
378
     Poti[i] =  PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 127;
378
        }
379
        }
379
    SenderOkay = 100;
380
    SenderOkay = 100;
380
    if(ServoActive)
-
 
381
         {
381
 
382
                DDRD  |=0x80; // enable J7 -> Servo signal
382
    if(ServoActive)     DDRD  |=0x80; // enable J7 -> Servo signal
383
     }
-
 
384
         else
383
        else
385
         {
384
         {
386
//      if(EE_Parameter.ServoCompInvert & SERVO_NICK_INV) NickServoValue = ((128 + 60) * 4 * 16); // neutral position = upper 1/4
385
//      if(EE_Parameter.ServoCompInvert & SERVO_NICK_INV) NickServoValue = ((128 + 60) * 4 * 16); // neutral position = upper 1/4//       else    
387
//        else    
-
 
388
          NickServoValue = ((128 - 60) * 4 * 16); // neutral position = lower 1/4
386
          NickServoValue = ((128 - 60) * 4 * 16); // neutral position = lower 1/4
-
 
387
          CalculateServoSignals = 1;
-
 
388
          CalculateServo(); // nick
-
 
389
          CalculateServo(); // roll
389
         }
390
         }
Line 390... Line 391...
390
 
391
 
391
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
392
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
392
    signed int tilt1, tilt2;
393
    signed int tilt1, tilt2;
Line 638... Line 639...
638
 CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,5,255);
639
 CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,5,255);
639
 CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,5,255);
640
 CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,5,255);
Line 640... Line 641...
640
 
641
 
641
 if(EE_Parameter.Servo3 == 247) { if(PORTC & (1<<PORTC2)) Parameter_Servo3 = 140; else Parameter_Servo3 = 70;}       // Out1 (J16)
642
 if(EE_Parameter.Servo3 == 247) { if(PORTC & (1<<PORTC2)) Parameter_Servo3 = 140; else Parameter_Servo3 = 70;}       // Out1 (J16)
642
 else if(EE_Parameter.Servo3 == 246) { if(PORTC & (1<<PORTC3)) Parameter_Servo3 = 140; else Parameter_Servo3 = 70;}
643
 else if(EE_Parameter.Servo3 == 246) { if(PORTC & (1<<PORTC3)) Parameter_Servo3 = 140; else Parameter_Servo3 = 70;}
Line 643... Line 644...
643
 else CHK_POTI(Parameter_Servo3,EE_Parameter.Servo3);
644
 else CHK_POTI_MM(Parameter_Servo3,EE_Parameter.Servo3, 24, 255);
644
 
645
 
645
 if(EE_Parameter.Servo4 == 247) { if(PORTC & (1<<PORTC2)) Parameter_Servo4 = 140; else Parameter_Servo4 = 70;}
646
 if(EE_Parameter.Servo4 == 247) { if(PORTC & (1<<PORTC2)) Parameter_Servo4 = 140; else Parameter_Servo4 = 70;}
-
 
647
 else if(EE_Parameter.Servo4 == 246) { if(PORTC & (1<<PORTC3)) Parameter_Servo4 = 140; else Parameter_Servo4 = 70;}  // Out2 (J17)
646
 else if(EE_Parameter.Servo4 == 246) { if(PORTC & (1<<PORTC3)) Parameter_Servo4 = 140; else Parameter_Servo4 = 70;}  // Out2 (J17)
648
 else CHK_POTI_MM(Parameter_Servo4,EE_Parameter.Servo4, 24, 255);
647
 else CHK_POTI(Parameter_Servo4,EE_Parameter.Servo4);
649
 
648
 CHK_POTI(Parameter_Servo5,EE_Parameter.Servo5);
650
 CHK_POTI_MM(Parameter_Servo5,EE_Parameter.Servo5, 24, 255);
649
 Parameter_HoehenSchalter = GetChannelValue(EE_Parameter.HoeheChannel);
651
 Parameter_HoehenSchalter = GetChannelValue(EE_Parameter.HoeheChannel);
650
 CHK_POTI(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung);
652
 CHK_POTI(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung);
651
 CHK_POTI(Parameter_Hoehe_GPS_Z,EE_Parameter.Hoehe_GPS_Z);
653
 CHK_POTI(Parameter_Hoehe_GPS_Z,EE_Parameter.Hoehe_GPS_Z);
Line 937... Line 939...
937
                                                   LIBFC_ReceiverInit(EE_Parameter.Receiver);
939
                                                   LIBFC_ReceiverInit(EE_Parameter.Receiver);
938
                           if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG))  // Höhenregelung aktiviert?
940
                           if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG))  // Höhenregelung aktiviert?
939
                            {
941
                            {
940
                             if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
942
                             if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
941
                            }
943
                            }
942
//                                                 ServoActive = 0;
-
 
943
                           CalibrationDone = SetNeutral(1);
944
                           CalibrationDone = SetNeutral(1);
944
                                                   ServoActive = 1;
945
                                                   ServoActive = 1;
945
                                                   DDRD  |=0x80; // enable J7 -> Servo signal
946
                                                   DDRD  |=0x80; // enable J7 -> Servo signal
946
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
947
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
947
                                                   if(VersionInfo.HardwareError[0]) SpeakHoTT = SPEAK_ERR_SENSOR;
948
                                                   if(VersionInfo.HardwareError[0]) SpeakHoTT = SPEAK_ERR_SENSOR;
Line 1037... Line 1038...
1037
                                        {
1038
                                        {
1038
//                                              if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0))
1039
//                                              if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0))
1039
                                                if((((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 100) && ((!(EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -75) || EE_Parameter.MotorSafetySwitch == 0)))
1040
                                                if((((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 100) && ((!(EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -75) || EE_Parameter.MotorSafetySwitch == 0)))
1040
                                                || (((EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -50 && move_safety_switch == -100)))
1041
                                                || (((EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -50 && move_safety_switch == -100)))
1041
                                                {
1042
                                                {
1042
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -100 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 100) && EE_Parameter.MotorSafetySwitch == 0)
1043
                                                        if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -100 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 100) && EE_Parameter.MotorSafetySwitch == 0)
1043
 {
1044
                                                        {
1044
  delay_ausschalten = 0;
1045
                                                                delay_ausschalten = 0;
1045
 }
1046
                                                        }
1046
else
1047
                                                        else
1047
 {
1048
                                                        {
1048
  SummeNick = 0;
1049
                                                          SummeNick = 0;
1049
  SummeRoll = 0;
1050
                                                          SummeRoll = 0;
1050
  StickNick = 0;
1051
                                                          StickNick = 0;
1051
  StickRoll = 0;
1052
                                                          StickRoll = 0;
1052
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
-
 
1053
  SpeakHoTT = SPEAK_MK_OFF;
-
 
1054
#endif
1053
                                                        }
1055
 }
-
 
1056
                                                        if(++delay_ausschalten > 250)  // nicht sofort
1054
                                                        if(++delay_ausschalten > 250)  // nicht sofort
1057
                                                        {
1055
                                                        {
1058
                                                                MotorenEin = 0;
1056
                                                                MotorenEin = 0;
1059
                                                                delay_ausschalten = 0;
1057
                                                                delay_ausschalten = 0;
1060
                                                                modell_fliegt = 0;
1058
                                                                modell_fliegt = 0;
1061
FC_StatusFlags2 &= ~(FC_STATUS2_WAIT_FOR_TAKEOFF | FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
1059
                                                                FC_StatusFlags2 &= ~(FC_STATUS2_WAIT_FOR_TAKEOFF | FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
-
 
1060
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
-
 
1061
                                                                SpeakHoTT = SPEAK_MK_OFF;
-
 
1062
#endif
1062
                                                        }
1063
                                                        }
1063
                                                }
1064
                                                }
1064
                                                else delay_ausschalten = 0;
1065
                                                else delay_ausschalten = 0;
1065
                                        }
1066
                                        }
1066
                  if(GasIsZeroCnt < 1000) GasIsZeroCnt++;
1067
                  if(GasIsZeroCnt < 1000) GasIsZeroCnt++;