mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-15 20:35:33 +03:00
Merge pull request #5291 from etracer65/fix_3d_on_switch
Fix 3D on a switch throttle inversion/scale
This commit is contained in:
commit
e28cf9dbca
1 changed files with 15 additions and 13 deletions
|
@ -324,20 +324,22 @@ void updateRcCommands(void)
|
||||||
|
|
||||||
rcCommand[THROTTLE] = rcLookupThrottle(tmp);
|
rcCommand[THROTTLE] = rcLookupThrottle(tmp);
|
||||||
|
|
||||||
if (feature(FEATURE_3D) && IS_RC_MODE_ACTIVE(BOX3D) && !failsafeIsActive()) {
|
if (feature(FEATURE_3D) && !failsafeIsActive()) {
|
||||||
|
if (!flight3DConfig()->switched_mode3d) {
|
||||||
|
if (IS_RC_MODE_ACTIVE(BOX3D)) {
|
||||||
fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000);
|
fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000);
|
||||||
rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MAX - rxConfig()->midrc);
|
rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MAX - rxConfig()->midrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (feature(FEATURE_3D) && flight3DConfig()->switched_mode3d && !failsafeIsActive()) {
|
|
||||||
if (IS_RC_MODE_ACTIVE(BOX3D)) {
|
|
||||||
reverseMotors = false;
|
|
||||||
fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000);
|
|
||||||
rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MAX - rxConfig()->midrc);
|
|
||||||
} else {
|
} else {
|
||||||
|
if (IS_RC_MODE_ACTIVE(BOX3D)) {
|
||||||
reverseMotors = true;
|
reverseMotors = true;
|
||||||
fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000);
|
fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000);
|
||||||
rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MIN - rxConfig()->midrc);
|
rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MIN - rxConfig()->midrc);
|
||||||
|
} else {
|
||||||
|
reverseMotors = false;
|
||||||
|
fix12_t throttleScaler = qConstruct(rcCommand[THROTTLE] - 1000, 1000);
|
||||||
|
rcCommand[THROTTLE] = rxConfig()->midrc + qMultiply(throttleScaler, PWM_RANGE_MAX - rxConfig()->midrc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (FLIGHT_MODE(HEADFREE_MODE)) {
|
if (FLIGHT_MODE(HEADFREE_MODE)) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue