Subversion Repositories FlightCtrl

Rev

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

Rev 1861 Rev 1862
Line 100... Line 100...
100
char MotorenEin = 0,StartTrigger = 0;
100
char MotorenEin = 0,StartTrigger = 0;
101
long HoehenWert = 0;
101
long HoehenWert = 0;
102
long SollHoehe = 0;
102
long SollHoehe = 0;
103
long FromNC_AltitudeSetpoint = 0;
103
long FromNC_AltitudeSetpoint = 0;
104
unsigned char FromNC_AltitudeSpeed = 0;
104
unsigned char FromNC_AltitudeSpeed = 0;
-
 
105
unsigned char carefree_old = 50; // to make the Beep when switching
Line 105... Line 106...
105
                         
106
                         
106
int CompassGierSetpoint = 0;
107
int CompassGierSetpoint = 0;
107
int LageKorrekturRoll = 0,LageKorrekturNick = 0, HoverGas = 0;
108
int LageKorrekturRoll = 0,LageKorrekturNick = 0, HoverGas = 0;
108
//float Ki =  FAKTOR_I;
109
//float Ki =  FAKTOR_I;
Line 345... Line 346...
345
    LED_Init();
346
    LED_Init();
346
    FC_StatusFlags |= FC_STATUS_CALIBRATE;
347
    FC_StatusFlags |= FC_STATUS_CALIBRATE;
347
    FromNaviCtrl_Value.Kalman_K = -1;
348
    FromNaviCtrl_Value.Kalman_K = -1;
348
    FromNaviCtrl_Value.Kalman_MaxDrift = 0;
349
    FromNaviCtrl_Value.Kalman_MaxDrift = 0;
349
    FromNaviCtrl_Value.Kalman_MaxFusion = 32;
350
    FromNaviCtrl_Value.Kalman_MaxFusion = 32;
350
 
-
 
351
   for(i=0;i<8;i++)
351
   for(i=0;i<8;i++)
352
    {
352
    {
353
     Poti[i] =  PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
353
     Poti[i] =  PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
354
        }
354
        }
355
    SenderOkay = 100;
355
    SenderOkay = 100;
Line 363... Line 363...
363
        if((AdNeutralRoll < 150 * 16) || (AdNeutralRoll > 850 * 16)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; };
363
        if((AdNeutralRoll < 150 * 16) || (AdNeutralRoll > 850 * 16)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; };
364
        if((AdNeutralGier < 150 * 2)  || (AdNeutralGier > 850 * 2))  { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; };
364
        if((AdNeutralGier < 150 * 2)  || (AdNeutralGier > 850 * 2))  { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; };
365
        if((NeutralAccX < 300) || (NeutralAccX > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_NICK; };
365
        if((NeutralAccX < 300) || (NeutralAccX > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_NICK; };
366
        if((NeutralAccY < 300) || (NeutralAccY > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_ROLL; };
366
        if((NeutralAccY < 300) || (NeutralAccY > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_ROLL; };
367
        if((NeutralAccZ < 512) || (NeutralAccZ > 850)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP; };
367
        if((NeutralAccZ < 512) || (NeutralAccZ > 850)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP; };
-
 
368
    carefree_old = 70;
368
}
369
}
Line 369... Line 370...
369
 
370
 
370
 
371
 
Line 556... Line 557...
556
// Trägt ggf. das Poti als Parameter ein
557
// Trägt ggf. das Poti als Parameter ein
557
void ParameterZuordnung(void)
558
void ParameterZuordnung(void)
558
//############################################################################
559
//############################################################################
559
{
560
{
560
 unsigned char tmp,i;
561
 unsigned char tmp,i;
561
 static unsigned char carefree_old = 2;
-
 
562
 #define CHK_POTI(b,a) {if(a < 248) b = a; else b = Poti[255 - a];}
562
 #define CHK_POTI(b,a) {if(a < 248) b = a; else b = Poti[255 - a];}
563
 #define CHK_POTI_MM(b,a,min,max) {CHK_POTI(b,a); LIMIT_MIN_MAX(b, min, max);}
563
 #define CHK_POTI_MM(b,a,min,max) {CHK_POTI(b,a); LIMIT_MIN_MAX(b, min, max);}
564
  for(i=0;i<8;i++)
564
  for(i=0;i<8;i++)
565
    {
565
    {
566
     int tmp2;
566
     int tmp2;
Line 618... Line 618...
618
#ifdef SWITCH_LEARNS_CAREFREE
618
#ifdef SWITCH_LEARNS_CAREFREE
619
    if(!CareFree)  ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
619
    if(!CareFree)  ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
620
#endif
620
#endif
621
        CareFree = 1;
621
        CareFree = 1;
622
    if(tmp >= 248 && Poti[255 - tmp] < 50) CareFree = 0;
622
    if(tmp >= 248 && Poti[255 - tmp] < 50) CareFree = 0;
623
    if(carefree_old == 0 && CareFree)  beeptime = 1000;
623
    if(carefree_old != CareFree)
-
 
624
    {
-
 
625
      if(carefree_old < 3)
-
 
626
           {
624
    if(carefree_old == 1 && !CareFree) beeptime = 200;
627
                if(CareFree) beeptime = 1500;
-
 
628
            else beeptime = 200;
625
    carefree_old = CareFree;
629
        carefree_old = CareFree;
-
 
630
           } else carefree_old--;
-
 
631
        }  
626
        if(FromNaviCtrl.CompassValue < 0 && CareFree) VersionInfo.HardwareError[0] |= FC_ERROR0_CAREFREE; else VersionInfo.HardwareError[0] &= ~FC_ERROR0_CAREFREE;
632
        if(FromNaviCtrl.CompassValue < 0 && CareFree) VersionInfo.HardwareError[0] |= FC_ERROR0_CAREFREE; else VersionInfo.HardwareError[0] &= ~FC_ERROR0_CAREFREE;
627
   }
633
   }
628
   else
634
   else
629
   {
635
   {
630
    CareFree = 0;
636
    CareFree = 0;
631
        carefree_old = 0;
637
        carefree_old = 10;
632
   }   
638
   }   
Line 633... Line 639...
633
 
639
 
634
 if(FromNaviCtrl.CompassValue < 0 && MotorenEin && CareFree && BeepMuster == 0xffff) // ungültiger Kompasswert
640
 if(FromNaviCtrl.CompassValue < 0 && MotorenEin && CareFree && BeepMuster == 0xffff) // ungültiger Kompasswert
635
        {
641
        {