mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 16:25:31 +03:00
Improved the naming of the digital idle offset getter.
This commit is contained in:
parent
9aae36b5e5
commit
3d7ac0dc6b
7 changed files with 16 additions and 13 deletions
|
@ -1475,7 +1475,7 @@ static bool blackboxWriteSysinfo(void)
|
|||
#endif
|
||||
|
||||
#if defined(USE_DYN_IDLE)
|
||||
BLACKBOX_PRINT_HEADER_LINE("dynamic_idle_offset", "%d", currentPidProfile->idle_min_rpm ? lrintf(getDynamicIdleOffset()) : 0);
|
||||
BLACKBOX_PRINT_HEADER_LINE("dynamic_idle_min_rpm", "%d", currentPidProfile->idle_min_rpm);
|
||||
#endif
|
||||
|
||||
default:
|
||||
|
|
|
@ -50,15 +50,15 @@
|
|||
#include "dshot.h"
|
||||
|
||||
void dshotInitEndpoints(const motorConfig_t *motorConfig, float outputLimit, float *outputLow, float *outputHigh, float *disarm, float *deadbandMotor3dHigh, float *deadbandMotor3dLow) {
|
||||
float outputLimitOffset = (DSHOT_MAX_THROTTLE - DSHOT_MIN_THROTTLE) * (1 - outputLimit);
|
||||
float outputLimitOffset = DSHOT_RANGE * (1 - outputLimit);
|
||||
*disarm = DSHOT_CMD_MOTOR_STOP;
|
||||
if (featureIsEnabled(FEATURE_3D)) {
|
||||
*outputLow = DSHOT_MIN_THROTTLE + ((DSHOT_3D_FORWARD_MIN_THROTTLE - 1 - DSHOT_MIN_THROTTLE) / 100.0f) * CONVERT_PARAMETER_TO_PERCENT(motorConfig->digitalIdleOffsetValue);
|
||||
*outputLow = DSHOT_MIN_THROTTLE + getDigitalIdleOffset(motorConfig) * (DSHOT_3D_FORWARD_MIN_THROTTLE - 1 - DSHOT_MIN_THROTTLE);
|
||||
*outputHigh = DSHOT_MAX_THROTTLE - outputLimitOffset / 2;
|
||||
*deadbandMotor3dHigh = DSHOT_3D_FORWARD_MIN_THROTTLE + ((DSHOT_MAX_THROTTLE - DSHOT_3D_FORWARD_MIN_THROTTLE) / 100.0f) * CONVERT_PARAMETER_TO_PERCENT(motorConfig->digitalIdleOffsetValue);
|
||||
*deadbandMotor3dHigh = DSHOT_3D_FORWARD_MIN_THROTTLE + getDigitalIdleOffset(motorConfig) * (DSHOT_MAX_THROTTLE - DSHOT_3D_FORWARD_MIN_THROTTLE);
|
||||
*deadbandMotor3dLow = DSHOT_3D_FORWARD_MIN_THROTTLE - 1 - outputLimitOffset / 2;
|
||||
} else {
|
||||
*outputLow = DSHOT_MIN_THROTTLE + ((DSHOT_MAX_THROTTLE - DSHOT_MIN_THROTTLE) / 100.0f) * CONVERT_PARAMETER_TO_PERCENT(motorConfig->digitalIdleOffsetValue);
|
||||
*outputLow = DSHOT_MIN_THROTTLE + getDigitalIdleOffset(motorConfig) * DSHOT_RANGE;
|
||||
*outputHigh = DSHOT_MAX_THROTTLE - outputLimitOffset;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#define DSHOT_MIN_THROTTLE 48
|
||||
#define DSHOT_MAX_THROTTLE 2047
|
||||
#define DSHOT_3D_FORWARD_MIN_THROTTLE 1048
|
||||
#define DSHOT_RANGE (DSHOT_MAX_THROTTLE - DSHOT_MIN_THROTTLE)
|
||||
|
||||
#define MIN_GCR_EDGES 7
|
||||
#define MAX_GCR_EDGES 22
|
||||
|
|
|
@ -321,9 +321,15 @@ timeMs_t motorGetMotorEnableTimeMs(void)
|
|||
#endif
|
||||
|
||||
#ifdef USE_DSHOT_BITBANG
|
||||
bool isDshotBitbangActive(const motorDevConfig_t *motorDevConfig) {
|
||||
bool isDshotBitbangActive(const motorDevConfig_t *motorDevConfig)
|
||||
{
|
||||
return motorDevConfig->useDshotBitbang == DSHOT_BITBANG_ON ||
|
||||
(motorDevConfig->useDshotBitbang == DSHOT_BITBANG_AUTO && motorDevConfig->useDshotTelemetry && motorDevConfig->motorPwmProtocol != PWM_TYPE_PROSHOT1000);
|
||||
}
|
||||
#endif
|
||||
|
||||
float getDigitalIdleOffset(const motorConfig_t *motorConfig)
|
||||
{
|
||||
return CONVERT_PARAMETER_TO_PERCENT(motorConfig->digitalIdleOffsetValue * 0.01f);
|
||||
}
|
||||
#endif // USE_MOTOR
|
||||
|
|
|
@ -100,3 +100,5 @@ struct motorDevConfig_s;
|
|||
typedef struct motorDevConfig_s motorDevConfig_t;
|
||||
bool isDshotBitbangActive(const motorDevConfig_t *motorConfig);
|
||||
#endif
|
||||
|
||||
float getDigitalIdleOffset(const motorConfig_t *motorConfig);
|
||||
|
|
|
@ -117,4 +117,3 @@ bool isFixedWing(void);
|
|||
|
||||
float getMotorOutputLow(void);
|
||||
float getMotorOutputHigh(void);
|
||||
float getDynamicIdleOffset(void);
|
||||
|
|
|
@ -396,11 +396,6 @@ static void mixerConfigureOutput(void)
|
|||
}
|
||||
#endif // USE_QUAD_MIXER_ONLY
|
||||
|
||||
float getDynamicIdleOffset(void)
|
||||
{
|
||||
return motorConfig()->digitalIdleOffsetValue * 0.0001f * PWM_RANGE;
|
||||
}
|
||||
|
||||
void mixerInit(mixerMode_e mixerMode)
|
||||
{
|
||||
currentMixerMode = mixerMode;
|
||||
|
@ -415,7 +410,7 @@ void mixerInit(mixerMode_e mixerMode)
|
|||
#endif
|
||||
|
||||
#ifdef USE_DYN_IDLE
|
||||
mixerRuntime.idleThrottleOffset = getDynamicIdleOffset();
|
||||
mixerRuntime.idleThrottleOffset = getDigitalIdleOffset(motorConfig()) * PWM_RANGE;
|
||||
#endif
|
||||
|
||||
mixerConfigureOutput();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue