Plane: use set_radio_trimmed() for flaperons
See discussion in issue #1425
This commit is contained in:
parent
33e4f44434
commit
8071d7c1d3
@ -684,34 +684,21 @@ static void flaperon_update(int8_t flap_percent)
|
||||
flaperons are implemented as a mixer between aileron and a
|
||||
percentage of flaps. Flap input can come from a manual channel
|
||||
or from auto flaps.
|
||||
|
||||
Use k_flaperon1 and k_flaperon2 channel trims to center servos.
|
||||
Then adjust aileron trim for level flight (note that aileron trim is affected
|
||||
by mixing gain). flapin_channel's trim is not used.
|
||||
*/
|
||||
|
||||
// first map the amount of aileron roll to a 1000..2000 value. We
|
||||
// center it on 1500 so that using trim on the roll channel will
|
||||
// have an affect on the flaperon roll output. We also scale it
|
||||
// for the roll min/max range, so that transmitters with a small
|
||||
// range of outputs can command flaperons with full output range.
|
||||
ch1 = 1500 + ((channel_roll->radio_out - 1500) * 1000.0f / (channel_roll->radio_max - channel_roll->radio_min));
|
||||
|
||||
// now map flap percentage to a 1000..2000 value
|
||||
|
||||
ch1 = channel_roll->radio_out;
|
||||
// The *5 is to take a percentage to a value from -500 to 500 for the mixer
|
||||
ch2 = 1500 - flap_percent * 5;
|
||||
|
||||
// run the mixer
|
||||
channel_output_mixer(g.flaperon_output, ch1, ch2);
|
||||
|
||||
// the mixer gives us a value from 900 to 2100 for each channel We
|
||||
// now need to map that onto a -4500 to 4500 angle. We use a ratio
|
||||
// of 9 so that for a MIXING_GAIN of 1.0 we get pass-thru of
|
||||
// ailerons with no flaps
|
||||
ch1 = (ch1 - 1500) * 9;
|
||||
ch2 = (ch2 - 1500) * 9;
|
||||
|
||||
// and now let the trims and ranges of the flaperon output
|
||||
// channels take effect to map this to PWM values
|
||||
RC_Channel_aux::set_servo_out(RC_Channel_aux::k_flaperon1, ch1);
|
||||
RC_Channel_aux::set_servo_out(RC_Channel_aux::k_flaperon2, ch2);
|
||||
RC_Channel_aux::set_radio_trimmed(RC_Channel_aux::k_flaperon1, ch1);
|
||||
RC_Channel_aux::set_radio_trimmed(RC_Channel_aux::k_flaperon2, ch2);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************
|
||||
* Set the flight control servos based on the current calculated values
|
||||
*****************************************/
|
||||
|
Loading…
Reference in New Issue
Block a user