Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2121 → Rev 2122

/branches/dongfang_FC_fixedwing/rc.c
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;
}
}