1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-13 03:20:00 +03:00

Make servos great again (#13451)

* Make services great again

* Make servos great again

* Changes according comments
This commit is contained in:
StNekroman 2024-03-14 21:50:16 +02:00 committed by GitHub
parent ecef09fdd7
commit 413d05d6c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 10 additions and 6 deletions

View file

@ -2178,8 +2178,8 @@ static void cliServo(const char *cmdName, char *cmdline)
servo = servoParamsMutable(i); servo = servoParamsMutable(i);
if ( if (
arguments[MIN] < PWM_PULSE_MIN || arguments[MIN] > PWM_PULSE_MAX || arguments[MIN] < PWM_SERVO_MIN || arguments[MIN] > PWM_SERVO_MAX ||
arguments[MAX] < PWM_PULSE_MIN || arguments[MAX] > PWM_PULSE_MAX || arguments[MAX] < PWM_SERVO_MIN || arguments[MAX] > PWM_SERVO_MAX ||
arguments[MIDDLE] < arguments[MIN] || arguments[MIDDLE] > arguments[MAX] || arguments[MIDDLE] < arguments[MIN] || arguments[MIDDLE] > arguments[MAX] ||
arguments[MIN] > arguments[MAX] || arguments[MIN] > arguments[MAX] ||
arguments[RATE] < -100 || arguments[RATE] > 100 || arguments[RATE] < -100 || arguments[RATE] > 100 ||

View file

@ -211,7 +211,7 @@ int16_t determineServoMiddleOrForwardFromChannel(servoIndex_e servoIndex)
const uint8_t channelToForwardFrom = servoParams(servoIndex)->forwardFromChannel; const uint8_t channelToForwardFrom = servoParams(servoIndex)->forwardFromChannel;
if (channelToForwardFrom != CHANNEL_FORWARDING_DISABLED && channelToForwardFrom < rxRuntimeState.channelCount) { if (channelToForwardFrom != CHANNEL_FORWARDING_DISABLED && channelToForwardFrom < rxRuntimeState.channelCount) {
return rcData[channelToForwardFrom]; return scaleRangef(constrainf(rcData[channelToForwardFrom], PWM_RANGE_MIN, PWM_RANGE_MAX), PWM_RANGE_MIN, PWM_RANGE_MAX, servoParams(servoIndex)->min, servoParams(servoIndex)->max);
} }
return servoParams(servoIndex)->middle; return servoParams(servoIndex)->middle;

View file

@ -24,6 +24,13 @@
#include "drivers/io_types.h" #include "drivers/io_types.h"
#include "drivers/pwm_output.h" #include "drivers/pwm_output.h"
#define PWM_SERVO_MIN 500 // minimum servo PWM pulse width which we can set from cli
#define PWM_SERVO_MAX 2500 // maximum servo PWM pulse width which we can set from cli
#define DEFAULT_SERVO_MIN 1000
#define DEFAULT_SERVO_MIDDLE 1500
#define DEFAULT_SERVO_MAX 2000
// These must be consecutive, see 'reversedSources' // These must be consecutive, see 'reversedSources'
enum { enum {
INPUT_STABILIZED_ROLL = 0, INPUT_STABILIZED_ROLL = 0,

View file

@ -41,9 +41,6 @@
#define CHANNEL_VALUE_TO_RXFAIL_STEP(channelValue) ((constrain(channelValue, PWM_PULSE_MIN, PWM_PULSE_MAX) - PWM_PULSE_MIN) / 25) #define CHANNEL_VALUE_TO_RXFAIL_STEP(channelValue) ((constrain(channelValue, PWM_PULSE_MIN, PWM_PULSE_MAX) - PWM_PULSE_MIN) / 25)
#define MAX_RXFAIL_RANGE_STEP ((PWM_PULSE_MAX - PWM_PULSE_MIN) / 25) #define MAX_RXFAIL_RANGE_STEP ((PWM_PULSE_MAX - PWM_PULSE_MIN) / 25)
#define DEFAULT_SERVO_MIN 1000
#define DEFAULT_SERVO_MIDDLE 1500
#define DEFAULT_SERVO_MAX 2000
typedef enum { typedef enum {
RX_FRAME_PENDING = 0, RX_FRAME_PENDING = 0,