mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-13 03:20:00 +03:00
NOINLINE some pid.c functions
This commit is contained in:
parent
070e80f8f6
commit
56a3f7cec2
1 changed files with 12 additions and 12 deletions
|
@ -317,7 +317,7 @@ void pidResetIterm(void)
|
|||
}
|
||||
|
||||
#ifdef USE_WING
|
||||
static float calcWingThrottle(void)
|
||||
static float FAST_CODE_NOINLINE calcWingThrottle(void)
|
||||
{
|
||||
float batteryThrottleFactor = 1.0f;
|
||||
if (pidRuntime.tpaSpeed.maxVoltage > 0.0f) {
|
||||
|
@ -328,7 +328,7 @@ static float calcWingThrottle(void)
|
|||
return getMotorOutputRms() * batteryThrottleFactor;
|
||||
}
|
||||
|
||||
static float calcWingAcceleration(float throttle, float pitchAngleRadians)
|
||||
static float FAST_CODE_NOINLINE calcWingAcceleration(float throttle, float pitchAngleRadians)
|
||||
{
|
||||
const tpaSpeedParams_t *tpa = &pidRuntime.tpaSpeed;
|
||||
|
||||
|
@ -339,7 +339,7 @@ static float calcWingAcceleration(float throttle, float pitchAngleRadians)
|
|||
return thrust - drag + gravity;
|
||||
}
|
||||
|
||||
static float calcWingTpaArgument(void)
|
||||
static float FAST_CODE_NOINLINE calcWingTpaArgument(void)
|
||||
{
|
||||
const float t = calcWingThrottle();
|
||||
const float pitchRadians = DECIDEGREES_TO_RADIANS(attitude.values.pitch);
|
||||
|
@ -366,7 +366,7 @@ static float calcWingTpaArgument(void)
|
|||
return tpaArgument;
|
||||
}
|
||||
|
||||
static void updateStermTpaFactor(int axis, float tpaFactor)
|
||||
static void FAST_CODE_NOINLINE updateStermTpaFactor(int axis, float tpaFactor)
|
||||
{
|
||||
float tpaFactorSterm = tpaFactor;
|
||||
if (pidRuntime.tpaCurveType == TPA_CURVE_HYPERBOLIC) {
|
||||
|
@ -378,7 +378,7 @@ static void updateStermTpaFactor(int axis, float tpaFactor)
|
|||
pidRuntime.tpaFactorSterm[axis] = tpaFactorSterm;
|
||||
}
|
||||
|
||||
static void updateStermTpaFactors(void) {
|
||||
static void FAST_CODE_NOINLINE updateStermTpaFactors(void) {
|
||||
for (int i = 0; i < XYZ_AXIS_COUNT; i++) {
|
||||
float tpaFactor = pidRuntime.tpaFactor;
|
||||
if (i == FD_YAW && currentPidProfile->yaw_type == YAW_TYPE_DIFF_THRUST) {
|
||||
|
@ -389,7 +389,7 @@ static void updateStermTpaFactors(void) {
|
|||
}
|
||||
#endif // USE_WING
|
||||
|
||||
static float wingAdjustSetpoint(float currentPidSetpoint, int axis)
|
||||
static float FAST_CODE_NOINLINE wingAdjustSetpoint(float currentPidSetpoint, int axis)
|
||||
{
|
||||
#ifdef USE_WING
|
||||
float adjustedSetpoint = currentPidSetpoint;
|
||||
|
@ -775,7 +775,7 @@ static FAST_CODE_NOINLINE float applyAcroTrainer(int axis, const rollAndPitchTri
|
|||
}
|
||||
#endif // USE_ACRO_TRAINER
|
||||
|
||||
static float accelerationLimit(int axis, float currentPidSetpoint)
|
||||
static float FAST_CODE_NOINLINE accelerationLimit(int axis, float currentPidSetpoint)
|
||||
{
|
||||
static float previousSetpoint[XYZ_AXIS_COUNT];
|
||||
const float currentVelocity = currentPidSetpoint - previousSetpoint[axis];
|
||||
|
@ -801,7 +801,7 @@ static void rotateVector(float v[XYZ_AXIS_COUNT], const float rotation[XYZ_AXIS_
|
|||
}
|
||||
}
|
||||
|
||||
STATIC_UNIT_TESTED void rotateItermAndAxisError(void)
|
||||
STATIC_UNIT_TESTED FAST_CODE_NOINLINE void rotateItermAndAxisError(void)
|
||||
{
|
||||
if (pidRuntime.itermRotation
|
||||
#if defined(USE_ABSOLUTE_CONTROL)
|
||||
|
@ -833,7 +833,7 @@ STATIC_UNIT_TESTED void rotateItermAndAxisError(void)
|
|||
|
||||
#if defined(USE_ITERM_RELAX)
|
||||
#if defined(USE_ABSOLUTE_CONTROL)
|
||||
STATIC_UNIT_TESTED void applyAbsoluteControl(const int axis, const float gyroRate, float *currentPidSetpoint, float *itermErrorRate)
|
||||
STATIC_UNIT_TESTED FAST_CODE_NOINLINE void applyAbsoluteControl(const int axis, const float gyroRate, float *currentPidSetpoint, float *itermErrorRate)
|
||||
{
|
||||
if (pidRuntime.acGain > 0 || debugMode == DEBUG_AC_ERROR) {
|
||||
const float setpointLpf = pt1FilterApply(&pidRuntime.acLpf[axis], *currentPidSetpoint);
|
||||
|
@ -1035,7 +1035,7 @@ static float getTpaFactor(const pidProfile_t *pidProfile, int axis, term_e term)
|
|||
}
|
||||
}
|
||||
|
||||
static float getSterm(int axis, const pidProfile_t *pidProfile, float setpoint)
|
||||
static float FAST_CODE_NOINLINE getSterm(int axis, const pidProfile_t *pidProfile, float setpoint)
|
||||
{
|
||||
#ifdef USE_WING
|
||||
float sTerm = setpoint / getMaxRcRate(axis) * 1000.0f *
|
||||
|
@ -1054,7 +1054,7 @@ static float getSterm(int axis, const pidProfile_t *pidProfile, float setpoint)
|
|||
#endif
|
||||
}
|
||||
|
||||
NOINLINE static void calculateSpaValues(const pidProfile_t *pidProfile)
|
||||
NOINLINE static void FAST_CODE_NOINLINE calculateSpaValues(const pidProfile_t *pidProfile)
|
||||
{
|
||||
#ifdef USE_WING
|
||||
for (int axis = 0; axis < XYZ_AXIS_COUNT; axis++) {
|
||||
|
@ -1068,7 +1068,7 @@ NOINLINE static void calculateSpaValues(const pidProfile_t *pidProfile)
|
|||
#endif // USE_WING
|
||||
}
|
||||
|
||||
NOINLINE static void applySpa(int axis, const pidProfile_t *pidProfile)
|
||||
NOINLINE static void FAST_CODE_NOINLINE applySpa(int axis, const pidProfile_t *pidProfile)
|
||||
{
|
||||
#ifdef USE_WING
|
||||
spaMode_e mode = pidProfile->spa_mode[axis];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue