Subversion Repositories FlightCtrl

Rev

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

Rev 1865 Rev 1876
Line 154... Line 154...
154
unsigned char Parameter_NaviWindCorrection;
154
unsigned char Parameter_NaviWindCorrection;
155
unsigned char Parameter_NaviSpeedCompensation;
155
unsigned char Parameter_NaviSpeedCompensation;
156
unsigned char Parameter_ExternalControl;
156
unsigned char Parameter_ExternalControl;
157
unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5;
157
unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5;
158
unsigned char CareFree = 0;
158
unsigned char CareFree = 0;
159
const signed char sintab[31] = { 0, 2, 4, 6, 7, 8, 8, 8, 7, 6, 4, 2, 0, -2, -4, -6, -7, -8, -8, -8, -7, -6, -4, -2, 0, 2, 4, 6, 7, 8, 8};
159
const signed char sintab[31] = { 0, 2, 4, 6, 7, 8, 8, 8, 7, 6, 4, 2, 0, -2, -4, -6, -7, -8, -8, -8, -7, -6, -4, -2, 0, 2, 4, 6, 7, 8, 8}; // 15° steps
Line 160... Line 160...
160
 
160
 
161
signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20;
161
signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20;
162
int MaxStickNick = 0,MaxStickRoll = 0;
162
int MaxStickNick = 0,MaxStickRoll = 0;
163
unsigned int  modell_fliegt = 0;
163
unsigned int  modell_fliegt = 0;
Line 237... Line 237...
237
   // ADC einschalten
237
   // ADC einschalten
238
    ANALOG_ON;
238
    ANALOG_ON;
239
   for(i=0;i<8;i++)
239
   for(i=0;i<8;i++)
240
    {
240
    {
241
     int tmp;
241
     int tmp;
242
         tmp = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
242
         tmp = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 127;
243
         LIMIT_MIN_MAX(tmp, 0, 255);
243
         LIMIT_MIN_MAX(tmp, 0, 255);
244
     if(Poti[i] > tmp) Poti[i]--;  else  if(Poti[i] < tmp) Poti[i]++;
244
     if(Poti[i] > tmp) Poti[i]--;  else  if(Poti[i] < tmp) Poti[i]++;
245
        }
245
        }
246
        Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
246
        Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
247
        Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
247
        Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
Line 349... Line 349...
349
    FromNaviCtrl_Value.Kalman_K = -1;
349
    FromNaviCtrl_Value.Kalman_K = -1;
350
    FromNaviCtrl_Value.Kalman_MaxDrift = 0;
350
    FromNaviCtrl_Value.Kalman_MaxDrift = 0;
351
    FromNaviCtrl_Value.Kalman_MaxFusion = 32;
351
    FromNaviCtrl_Value.Kalman_MaxFusion = 32;
352
   for(i=0;i<8;i++)
352
   for(i=0;i<8;i++)
353
    {
353
    {
354
     Poti[i] =  PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
354
     Poti[i] =  PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 127;
355
        }
355
        }
356
    SenderOkay = 100;
356
    SenderOkay = 100;
357
    if(ServoActive)
357
    if(ServoActive)
358
         {
358
         {
359
                HEF4017R_ON;
359
                HEF4017R_ON;
Line 563... Line 563...
563
 #define CHK_POTI(b,a) {if(a < 248) b = a; else b = Poti[255 - a];}
563
 #define CHK_POTI(b,a) {if(a < 248) b = a; else b = Poti[255 - a];}
564
 #define CHK_POTI_MM(b,a,min,max) {CHK_POTI(b,a); LIMIT_MIN_MAX(b, min, max);}
564
 #define CHK_POTI_MM(b,a,min,max) {CHK_POTI(b,a); LIMIT_MIN_MAX(b, min, max);}
565
  for(i=0;i<8;i++)
565
  for(i=0;i<8;i++)
566
    {
566
    {
567
     int tmp2;
567
     int tmp2;
568
         tmp2 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
568
         tmp2 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 127;
569
         if(tmp2 > 255) tmp2 = 255; else if(tmp2 < 0) tmp2 = 0;
569
         if(tmp2 > 255) tmp2 = 255; else if(tmp2 < 0) tmp2 = 0;
570
     if(tmp2 != Poti[i])
570
     if(tmp2 != Poti[i])
571
          {
571
          {
572
           Poti[i] += (tmp2 - Poti[i]) / 4;
572
           Poti[i] += (tmp2 - Poti[i]) / 4;
573
       if(Poti[i] > tmp2) Poti[i]--;
573
       if(Poti[i] > tmp2) Poti[i]--;