PID - fix dTime usages #776
This commit is contained in:
parent
3c09b8f1f5
commit
05d43db76f
|
@ -49,7 +49,7 @@ public:
|
||||||
private:
|
private:
|
||||||
void PeriodicTask(efitime_t nowNt) override {
|
void PeriodicTask(efitime_t nowNt) override {
|
||||||
UNUSED(nowNt);
|
UNUSED(nowNt);
|
||||||
setPeriod(NOT_TOO_OFTEN(10 /* ms */, engineConfiguration->alternatorControl.periodMs));
|
setPeriod(GET_PERIOD_LIMITED(&engineConfiguration->alternatorControl));
|
||||||
|
|
||||||
#if ! EFI_UNIT_TEST
|
#if ! EFI_UNIT_TEST
|
||||||
if (shouldResetPid) {
|
if (shouldResetPid) {
|
||||||
|
|
|
@ -62,7 +62,7 @@ public:
|
||||||
private:
|
private:
|
||||||
void PeriodicTask(efitime_t nowNt) override {
|
void PeriodicTask(efitime_t nowNt) override {
|
||||||
UNUSED(nowNt);
|
UNUSED(nowNt);
|
||||||
setPeriod(NOT_TOO_OFTEN(10 /* ms */, engineConfiguration->auxPid[0].periodMs));
|
setPeriod(GET_PERIOD_LIMITED(&engineConfiguration->auxPid[0]));
|
||||||
|
|
||||||
if (engine->auxParametersVersion.isOld(engine->getGlobalConfigurationVersion())) {
|
if (engine->auxParametersVersion.isOld(engine->getGlobalConfigurationVersion())) {
|
||||||
pidReset();
|
pidReset();
|
||||||
|
|
|
@ -167,7 +167,7 @@ private:
|
||||||
|
|
||||||
void PeriodicTask(efitime_t nowNt) override {
|
void PeriodicTask(efitime_t nowNt) override {
|
||||||
UNUSED(nowNt);
|
UNUSED(nowNt);
|
||||||
setPeriod(NOT_TOO_OFTEN(10 /* ms */, engineConfiguration->etb.periodMs));
|
setPeriod(GET_PERIOD_LIMITED(&engineConfiguration->etb));
|
||||||
|
|
||||||
|
|
||||||
// set debug_mode 17
|
// set debug_mode 17
|
||||||
|
|
|
@ -265,7 +265,7 @@ public:
|
||||||
private:
|
private:
|
||||||
void PeriodicTask(efitime_t nowNt) override {
|
void PeriodicTask(efitime_t nowNt) override {
|
||||||
UNUSED(nowNt);
|
UNUSED(nowNt);
|
||||||
setPeriod(NOT_TOO_OFTEN(10 /* ms */, engineConfiguration->idleRpmPid.periodMs));
|
setPeriod(GET_PERIOD_LIMITED(&engineConfiguration->idleRpmPid));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Here we have idle logic thread - actual stepper movement is implemented in a separate
|
* Here we have idle logic thread - actual stepper movement is implemented in a separate
|
||||||
|
|
|
@ -222,7 +222,7 @@ public:
|
||||||
private:
|
private:
|
||||||
void PeriodicTask(efitime_t nowNt) override {
|
void PeriodicTask(efitime_t nowNt) override {
|
||||||
UNUSED(nowNt);
|
UNUSED(nowNt);
|
||||||
setPeriod(NOT_TOO_OFTEN(10 /* ms */, engineConfiguration->auxPid[0].periodMs));
|
setPeriod(50 /* ms */);
|
||||||
|
|
||||||
// naive inter-thread communication - waiting for a flag
|
// naive inter-thread communication - waiting for a flag
|
||||||
if (isBenchTestPending) {
|
if (isBenchTestPending) {
|
||||||
|
|
|
@ -19,6 +19,13 @@
|
||||||
#define PID_AVG_BUF_SIZE_SHIFT 5
|
#define PID_AVG_BUF_SIZE_SHIFT 5
|
||||||
#define PID_AVG_BUF_SIZE (1<<PID_AVG_BUF_SIZE_SHIFT) // 32*sizeof(float)
|
#define PID_AVG_BUF_SIZE (1<<PID_AVG_BUF_SIZE_SHIFT) // 32*sizeof(float)
|
||||||
|
|
||||||
|
// minimal period 5m meaning maximum control frequency 200Hz
|
||||||
|
#define PID_MINIMAL_PERIOD_MS 5
|
||||||
|
|
||||||
|
#define GET_PERIOD_LIMITED(pid_s_ptr) maxI(PID_MINIMAL_PERIOD_MS, ((pid_s_ptr)->periodMs))
|
||||||
|
|
||||||
|
#define MS2SEC(x) (x * 0.001)
|
||||||
|
|
||||||
class Pid {
|
class Pid {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Reference in New Issue