SRV_Channel: fix RCInxScaled when input is range (instead of angle) #25538
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This resolves a bug in the servo output when the SERVOx_FUNCTION = RCInXScaled and the RCInput is a range instead of an angle. For example on Copter the problem occurs when RCx_FUNCTION = RCIn3Scaled.. Details of the issue are explained in issue #25524 and is also discussed here.
In current master the PWM output will always be between SERVOx_TRIM (e.g. 1500) and SERVOx_MAX (e.g. 2000). After this change the PWM output is correctly in the SERVOx_MIN (e.g. 1000) to SERVOx_MAX (e.g. 2000) range.
I've tested this fairly carefully including before and after tests.
I've also tested that the failsafe behaviour is unchanged. Namely in case of an RC failsafe, the PWM output stays unchanged OR moves to SERVOx_TRIM depending upon the SERVO_RC_FS_MSK parameter bits.
The above tests were done with these parameters