1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-17 05:15:25 +03:00

Add Heli 120 Mixer

(Squashed)
This commit is contained in:
RolandChen 2017-09-06 14:56:52 +08:00 committed by RolandChen
parent 36c91c76f6
commit f14574a222
3 changed files with 29 additions and 3 deletions

View file

@ -294,7 +294,7 @@ const mixer_t mixers[] = {
{ 8, false, mixerOctoFlatP }, // MIXER_OCTOFLATP
{ 8, false, mixerOctoFlatX }, // MIXER_OCTOFLATX
{ 1, true, mixerSingleProp }, // * MIXER_AIRPLANE
{ 0, true, NULL }, // * MIXER_HELI_120_CCPM
{ 1, true, mixerSingleProp }, // * MIXER_HELI_120_CCPM
{ 0, true, NULL }, // * MIXER_HELI_90_DEG
{ 4, false, mixerVtail4 }, // MIXER_VTAIL4
{ 6, false, mixerHex6H }, // MIXER_HEX6H

View file

@ -152,6 +152,18 @@ static const servoMixer_t servoMixerSingle[] = {
{ SERVO_SINGLECOPTER_4, INPUT_STABILIZED_ROLL, 100, 0, 0, 100, 0 },
};
static const servoMixer_t servoMixerHeli[] = {
{ SERVO_HELI_LEFT, INPUT_STABILIZED_PITCH, -50, 0, 0, 100, 0 },
{ SERVO_HELI_LEFT, INPUT_STABILIZED_ROLL, 87, 0, 0, 100, 0 },
{ SERVO_HELI_LEFT, INPUT_RC_AUX1, 100, 0, 0, 100, 0 },
{ SERVO_HELI_RIGHT, INPUT_STABILIZED_PITCH, -50, 0, 0, 100, 0 },
{ SERVO_HELI_RIGHT, INPUT_STABILIZED_ROLL, -87, 0, 0, 100, 0 },
{ SERVO_HELI_RIGHT, INPUT_RC_AUX1, 100, 0, 0, 100, 0 },
{ SERVO_HELI_TOP, INPUT_STABILIZED_PITCH, 100, 0, 0, 100, 0 },
{ SERVO_HELI_TOP, INPUT_RC_AUX1, 100, 0, 0, 100, 0 },
{ SERVO_HELI_RUD, INPUT_STABILIZED_YAW, 100, 0, 0, 100, 0 },
};
static const servoMixer_t servoMixerGimbal[] = {
{ SERVO_GIMBAL_PITCH, INPUT_GIMBAL_PITCH, 125, 0, 0, 100, 0 },
{ SERVO_GIMBAL_ROLL, INPUT_GIMBAL_ROLL, 125, 0, 0, 100, 0 },
@ -173,7 +185,7 @@ const mixerRules_t servoMixers[] = {
{ 0, NULL }, // MULTITYPE_OCTOFLATP
{ 0, NULL }, // MULTITYPE_OCTOFLATX
{ COUNT_SERVO_RULES(servoMixerAirplane), servoMixerAirplane }, // * MULTITYPE_AIRPLANE
{ 0, NULL }, // * MULTITYPE_HELI_120_CCPM
{ COUNT_SERVO_RULES(servoMixerHeli), servoMixerHeli }, // * MULTITYPE_HELI_120_CCPM
{ 0, NULL }, // * MULTITYPE_HELI_90_DEG
{ 0, NULL }, // MULTITYPE_VTAIL4
{ 0, NULL }, // MULTITYPE_HEX6H
@ -312,6 +324,13 @@ void writeServos(void)
pwmWriteServo(servoIndex++, servo[SERVO_BICOPTER_RIGHT]);
break;
case MIXER_HELI_120_CCPM:
pwmWriteServo(servoIndex++, servo[SERVO_HELI_LEFT]);
pwmWriteServo(servoIndex++, servo[SERVO_HELI_RIGHT]);
pwmWriteServo(servoIndex++, servo[SERVO_HELI_TOP]);
pwmWriteServo(servoIndex++, servo[SERVO_HELI_RUD]);
break;
case MIXER_TRI:
case MIXER_CUSTOM_TRI:
if (servoConfig()->tri_unarmed_servo) {
@ -456,6 +475,7 @@ static void servoTable(void)
case MIXER_TRI:
case MIXER_DUALCOPTER:
case MIXER_SINGLECOPTER:
case MIXER_HELI_120_CCPM:
case MIXER_GIMBAL:
servoMixer();
break;

View file

@ -60,7 +60,13 @@ typedef enum {
SERVO_SINGLECOPTER_1 = 3,
SERVO_SINGLECOPTER_2 = 4,
SERVO_SINGLECOPTER_3 = 5,
SERVO_SINGLECOPTER_4 = 6
SERVO_SINGLECOPTER_4 = 6,
SERVO_HELI_LEFT = 0,
SERVO_HELI_RIGHT = 1,
SERVO_HELI_TOP = 2,
SERVO_HELI_RUD = 3
} servoIndex_e; // FIXME rename to servoChannel_e
#define SERVO_PLANE_INDEX_MIN SERVO_FLAPS