Fix CPU bug due toe reinitialising of filters

This commit is contained in:
borisbstyle 2016-08-09 16:18:06 +02:00
parent da9673b982
commit 4ff2802095
2 changed files with 3 additions and 1 deletions

View File

@ -247,7 +247,7 @@ static void resetPidProfile(pidProfile_t *pidProfile)
pidProfile->dtermSetpointWeight = 120; pidProfile->dtermSetpointWeight = 120;
pidProfile->yawRateAccelLimit = 220; pidProfile->yawRateAccelLimit = 220;
pidProfile->rateAccelLimit = 0; pidProfile->rateAccelLimit = 0;
pidProfile->toleranceBand = 15; pidProfile->toleranceBand = 0;
pidProfile->toleranceBandReduction = 40; pidProfile->toleranceBandReduction = 40;
pidProfile->zeroCrossAllowanceCount = 2; pidProfile->zeroCrossAllowanceCount = 2;
pidProfile->itermThrottleGain = 0; pidProfile->itermThrottleGain = 0;

View File

@ -116,11 +116,13 @@ void initFilters(const pidProfile_t *pidProfile) {
if (pidProfile->dterm_notch_hz && !dtermNotchInitialised) { if (pidProfile->dterm_notch_hz && !dtermNotchInitialised) {
float notchQ = filterGetNotchQ(pidProfile->dterm_notch_hz, pidProfile->dterm_notch_cutoff); float notchQ = filterGetNotchQ(pidProfile->dterm_notch_hz, pidProfile->dterm_notch_cutoff);
for (axis = 0; axis < 3; axis++) biquadFilterInit(&dtermFilterNotch[axis], pidProfile->dterm_notch_hz, gyro.targetLooptime, notchQ, FILTER_NOTCH); for (axis = 0; axis < 3; axis++) biquadFilterInit(&dtermFilterNotch[axis], pidProfile->dterm_notch_hz, gyro.targetLooptime, notchQ, FILTER_NOTCH);
dtermNotchInitialised = true;
} }
if (pidProfile->dterm_filter_type == FILTER_BIQUAD) { if (pidProfile->dterm_filter_type == FILTER_BIQUAD) {
if (pidProfile->dterm_lpf_hz && !dtermBiquadLpfInitialised) { if (pidProfile->dterm_lpf_hz && !dtermBiquadLpfInitialised) {
for (axis = 0; axis < 3; axis++) biquadFilterInitLPF(&dtermFilterLpf[axis], pidProfile->dterm_lpf_hz, gyro.targetLooptime); for (axis = 0; axis < 3; axis++) biquadFilterInitLPF(&dtermFilterLpf[axis], pidProfile->dterm_lpf_hz, gyro.targetLooptime);
dtermBiquadLpfInitialised = true;
} }
} }
} }