Subversion Repositories FlightCtrl

Rev

Rev 1612 | Rev 1635 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1612 Rev 1634
Line 54... Line 54...
54
 
54
 
55
#include "rc.h"
55
#include "rc.h"
56
#include "controlMixer.h"
56
#include "controlMixer.h"
Line -... Line 57...
-
 
57
#include "configuration.h"
-
 
58
 
-
 
59
// for DebugOut only.
-
 
60
#include "uart0.h"
57
#include "configuration.h"
61
 
58
 
62
 
59
// The channel array is 1-based. The 0th entry is not used.
63
// The channel array is 1-based. The 0th entry is not used.
60
volatile int16_t PPM_in[MAX_CHANNELS];
64
volatile int16_t PPM_in[MAX_CHANNELS];
61
volatile int16_t PPM_diff[MAX_CHANNELS];
65
volatile int16_t PPM_diff[MAX_CHANNELS];
Line 210... Line 214...
210
void RC_update() {
214
void RC_update() {
211
  int16_t tmp1, tmp2;
215
  int16_t tmp1, tmp2;
212
  if(RC_Quality) {
216
  if(RC_Quality) {
213
    RC_Quality--;
217
    RC_Quality--;
214
    if (NewPpmData-- == 0) {
218
    if (NewPpmData-- == 0) {
-
 
219
 
-
 
220
      DebugOut.Analog[12] = stickOffsetPitch;
-
 
221
      DebugOut.Analog[13] = stickOffsetRoll;
-
 
222
 
215
      RC_PRTY[CONTROL_PITCH] = (RCChannel(CH_PITCH) - stickOffsetPitch) * staticParams.StickP + RCDiff(CH_PITCH) * staticParams.StickD;
223
      RC_PRTY[CONTROL_PITCH] = (RCChannel(CH_PITCH) - stickOffsetPitch) * staticParams.StickP + RCDiff(CH_PITCH) * staticParams.StickD;
216
      RC_PRTY[CONTROL_ROLL] = (RCChannel(CH_ROLL) - stickOffsetRoll)   * staticParams.StickP + RCDiff(CH_ROLL)  * staticParams.StickD;
224
      RC_PRTY[CONTROL_ROLL] = (RCChannel(CH_ROLL) - stickOffsetRoll)    * staticParams.StickP + RCDiff(CH_ROLL)  * staticParams.StickD;
217
      RC_PRTY[CONTROL_THROTTLE] = RCChannel(CH_THROTTLE) + PPM_diff[staticParams.ChannelAssignment[CH_THROTTLE]] * dynamicParams.UserParams[6] + 120;
225
      RC_PRTY[CONTROL_THROTTLE] = RCChannel(CH_THROTTLE) + PPM_diff[staticParams.ChannelAssignment[CH_THROTTLE]] * dynamicParams.UserParams[6] + 120;
218
      if (RC_PRTY[CONTROL_THROTTLE] < 0) RC_PRTY[CONTROL_THROTTLE] = 0; // Throttle is non negative.
226
      if (RC_PRTY[CONTROL_THROTTLE] < 0) RC_PRTY[CONTROL_THROTTLE] = 0; // Throttle is non negative.
219
      tmp1 = -RCChannel(CH_YAW) - RCDiff(CH_YAW);
227
      tmp1 = -RCChannel(CH_YAW) - RCDiff(CH_YAW);
Line 274... Line 282...
274
void RC_calibrate(void) {
282
void RC_calibrate(void) {
275
  if (staticParams.GlobalConfig & CFG_HEADING_HOLD) {
283
  if (staticParams.GlobalConfig & CFG_HEADING_HOLD) {
276
    // In HH, it s OK to trim the R/C. The effect should not be conteracted here.
284
    // In HH, it s OK to trim the R/C. The effect should not be conteracted here.
277
    stickOffsetPitch = stickOffsetRoll = 0;
285
    stickOffsetPitch = stickOffsetRoll = 0;
278
  } else {
286
  } else {
279
    stickOffsetPitch += RCChannel(CH_PITCH);
287
    stickOffsetPitch = RCChannel(CH_PITCH);
280
    stickOffsetRoll += RCChannel(CH_ROLL);
288
    stickOffsetRoll = RCChannel(CH_ROLL);
281
  }
289
  }
282
}
290
}
Line 283... Line 291...
283
 
291
 
284
#define COMMAND_THRESHOLD 85
292
#define COMMAND_THRESHOLD 85