From 04e5e3bf24ca9f4e7c2fefb2342e823f664a52be Mon Sep 17 00:00:00 2001 From: Nicola De Pasquale Date: Thu, 12 Mar 2020 00:09:50 +0100 Subject: [PATCH] max rate independent of deadband --- src/main/fc/rc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/fc/rc.c b/src/main/fc/rc.c index 1df90f172b..fa1fd4beef 100644 --- a/src/main/fc/rc.c +++ b/src/main/fc/rc.c @@ -244,8 +244,9 @@ static void calculateSetpointRate(int axis) } else #endif { + const uint8_t deadband = axis == FD_YAW ? rcControlsConfig()->yaw_deadband : rcControlsConfig()->deadband; // scale rcCommandf to range [-1.0, 1.0] - float rcCommandf = rcCommand[axis] / 500.0f; + float rcCommandf = rcCommand[axis] / (500.0f - deadband); rcDeflection[axis] = rcCommandf; const float rcCommandfAbs = fabsf(rcCommandf); rcDeflectionAbs[axis] = rcCommandfAbs; @@ -684,7 +685,8 @@ FAST_CODE void processRcCommand(void) if (isRxDataNew) { for (int i = FD_ROLL; i <= FD_YAW; i++) { oldRcCommand[i] = rcCommand[i]; - const float rcCommandf = rcCommand[i] / 500.0f; + const uint8_t deadband = i == FD_YAW ? rcControlsConfig()->yaw_deadband : rcControlsConfig()->deadband; + const float rcCommandf = rcCommand[i] / (500.0f - deadband); const float rcCommandfAbs = fabsf(rcCommandf); rawSetpoint[i] = applyRates(i, rcCommandf, rcCommandfAbs); rawDeflection[i] = rcCommandf;