Subversion Repositories FlightCtrl

Rev

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

Rev 1872 Rev 1960
Line 212... Line 212...
212
      //  }
212
      //  }
213
    }
213
    }
214
  }
214
  }
215
}
215
}
Line 216... Line 216...
216
 
216
 
217
#define RCChannel(dimension) PPM_in[staticParams.ChannelAssignment[dimension]]
217
#define RCChannel(dimension) PPM_in[channelMap.channels[dimension]]
218
#define RCDiff(dimension) PPM_diff[staticParams.ChannelAssignment[dimension]]
218
#define RCDiff(dimension) PPM_diff[channelMap.channels[dimension]]
219
#define COMMAND_THRESHOLD 85
219
#define COMMAND_THRESHOLD 85
220
#define COMMAND_CHANNEL_VERTICAL CH_THROTTLE
220
#define COMMAND_CHANNEL_VERTICAL CH_THROTTLE
Line 221... Line 221...
221
#define COMMAND_CHANNEL_HORIZONTAL CH_YAW
221
#define COMMAND_CHANNEL_HORIZONTAL CH_YAW
Line 247... Line 247...
247
void RC_update() {
247
void RC_update() {
248
  int16_t tmp1, tmp2;
248
  int16_t tmp1, tmp2;
249
  if (RC_Quality) {
249
  if (RC_Quality) {
250
    RC_Quality--;
250
    RC_Quality--;
251
    if (NewPpmData-- == 0) {
251
    if (NewPpmData-- == 0) {
252
      RC_PRTY[CONTROL_PITCH] = RCChannel(CH_PITCH) * staticParams.StickP
252
      RC_PRTY[CONTROL_PITCH] = RCChannel(CH_PITCH) * staticParams.stickP
253
          + RCDiff(CH_PITCH) * staticParams.StickD;
253
          + RCDiff(CH_PITCH) * staticParams.stickD;
254
      RC_PRTY[CONTROL_ROLL] = RCChannel(CH_ROLL) * staticParams.StickP
254
      RC_PRTY[CONTROL_ROLL] = RCChannel(CH_ROLL) * staticParams.stickP
255
          + RCDiff(CH_ROLL) * staticParams.StickD;
255
          + RCDiff(CH_ROLL) * staticParams.stickD;
256
      RC_PRTY[CONTROL_THROTTLE] = RCChannel(CH_THROTTLE) + RCDiff(CH_THROTTLE)
256
      RC_PRTY[CONTROL_THROTTLE] = RCChannel(CH_THROTTLE) + RCDiff(CH_THROTTLE)
257
          * dynamicParams.UserParams[3] + 120;
257
          * staticParams.stickThrottleD + 120;
258
      if (RC_PRTY[CONTROL_THROTTLE] < 0)
258
      if (RC_PRTY[CONTROL_THROTTLE] < 0)
259
        RC_PRTY[CONTROL_THROTTLE] = 0; // Throttle is non negative.
259
        RC_PRTY[CONTROL_THROTTLE] = 0; // Throttle is non negative.
260
      tmp1 = -RCChannel(CH_YAW) - RCDiff(CH_YAW);
260
      tmp1 = -RCChannel(CH_YAW) - RCDiff(CH_YAW);
261
      // exponential stick sensitivity in yawing rate
261
      // exponential stick sensitivity in yawing rate
262
      tmp2 = (int32_t) staticParams.StickYawP * ((int32_t) tmp1 * abs(tmp1))
262
      tmp2 = (int32_t) staticParams.stickYawP * ((int32_t) tmp1 * abs(tmp1))
263
          / 512L; // expo  y = ax + bx^2
263
          / 512L; // expo  y = ax + bx^2
264
      tmp2 += (staticParams.StickYawP * tmp1) >> 2;
264
      tmp2 += (staticParams.stickYawP * tmp1) >> 2;
265
      RC_PRTY[CONTROL_YAW] = tmp2;
265
      RC_PRTY[CONTROL_YAW] = tmp2;
266
    }
266
    }
267
    uint8_t command = RC_getStickCommand();
267
    uint8_t command = RC_getStickCommand();
Line 268... Line 268...
268
 
268
 
Line 390... Line 390...
390
      return 5;
390
      return 5;
391
    return 0;
391
    return 0;
392
  }
392
  }
393
}
393
}
Line -... Line 394...
-
 
394
 
394
 
395
/*
395
uint8_t RC_getLooping(uint8_t looping) {
396
uint8_t RC_getLooping(uint8_t looping) {
Line 396... Line 397...
396
  //  static uint8_t looping = 0;
397
  //  static uint8_t looping = 0;
397
 
398
 
Line 427... Line 428...
427
    looping &= (~(LOOPING_PITCH_AXIS | LOOPING_DOWN));
428
    looping &= (~(LOOPING_PITCH_AXIS | LOOPING_DOWN));
428
  }
429
  }
Line 429... Line 430...
429
 
430
 
430
  return looping;
431
  return looping;
-
 
432
}
Line 431... Line 433...
431
}
433
*/
432
 
434
 
433
uint8_t RC_testCompassCalState(void) {
435
uint8_t RC_testCompassCalState(void) {
434
  static uint8_t stick = 1;
436
  static uint8_t stick = 1;