119,7 → 119,7 |
if ((signal >= TIME(0.8)) && (signal < TIME(2.2))) { |
// shift signal to zero symmetric range -154 to 159 |
//signal -= 3750; // theoretical value |
signal -= (TIME(1.5) - 128 + channelMap.trim); // best value with my Futaba in zero trim. |
signal -= (TIME(1.5) - 128 + channelMap.HWTrim); |
// check for stable signal |
if (abs(signal - PPM_in[index]) < TIME(0.05)) { |
if (RCQuality < 200) |
198,16 → 198,16 |
if (RCQuality) { |
RCQuality--; |
|
debugOut.analog[20] = RCChannel(CH_ELEVATOR); |
debugOut.analog[21] = RCChannel(CH_AILERONS); |
debugOut.analog[22] = RCChannel(CH_RUDDER); |
debugOut.analog[23] = RCChannel(CH_THROTTLE); |
PRYT[CONTROL_ELEVATOR] = RCChannel(CH_ELEVATOR) - rcTrim.trim[CH_ELEVATOR]; |
PRYT[CONTROL_AILERONS] = RCChannel(CH_AILERONS) - rcTrim.trim[CH_AILERONS]; |
PRYT[CONTROL_RUDDER] = RCChannel(CH_RUDDER) - rcTrim.trim[CH_RUDDER]; |
PRYT[CONTROL_THROTTLE] = RCChannel(CH_THROTTLE); // no trim on throttle! |
|
PRYT[CONTROL_ELEVATOR] = RCChannel(CH_ELEVATOR); |
PRYT[CONTROL_AILERONS] = RCChannel(CH_AILERONS); |
PRYT[CONTROL_RUDDER] = RCChannel(CH_RUDDER); |
PRYT[CONTROL_THROTTLE] = RCChannel(CH_THROTTLE); |
} // if RCQuality is no good, we just do nothing. |
debugOut.analog[20] = PRYT[CONTROL_ELEVATOR]; |
debugOut.analog[21] = PRYT[CONTROL_AILERONS]; |
debugOut.analog[22] = PRYT[CONTROL_RUDDER]; |
debugOut.analog[23] = PRYT[CONTROL_THROTTLE]; |
} // if RCQuality is no good, we just do nothing. |
} |
|
/* |
235,9 → 235,18 |
} |
|
void RC_calibrate(void) { |
// Do nothing. |
rcTrim.trim[CH_ELEVATOR] = RCChannel(CH_ELEVATOR); |
rcTrim.trim[CH_AILERONS] = RCChannel(CH_AILERONS); |
rcTrim.trim[CH_RUDDER] = RCChannel(CH_RUDDER); |
rcTrim.trim[CH_THROTTLE] = 0; |
} |
|
int16_t RC_getZeroThrottle(void) { |
return TIME (-0.5); |
} |
|
void RC_setZeroTrim(void) { |
for (uint8_t i=0; i<MAX_CHANNELS; i++) { |
rcTrim.trim[i] = 0; |
} |
} |