diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index 9078be336f..81f0108868 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -514,9 +514,7 @@ void Engine::watchdog() { * todo: better watch dog implementation should be implemented - see * http://sourceforge.net/p/rusefi/tickets/96/ */ - float secondsSinceTriggerEvent = engine->triggerCentral.getTimeSinceTriggerEvent(getTimeNowNt()); - - if (secondsSinceTriggerEvent < 0.5f) { + if (engine->triggerCentral.engineMovedRecently()) { // Engine moved recently, no need to safe pins. return; } diff --git a/firmware/controllers/engine_cycle/rpm_calculator.cpp b/firmware/controllers/engine_cycle/rpm_calculator.cpp index c4a853770f..f7df1c4eb0 100644 --- a/firmware/controllers/engine_cycle/rpm_calculator.cpp +++ b/firmware/controllers/engine_cycle/rpm_calculator.cpp @@ -105,7 +105,7 @@ bool RpmCalculator::checkIfSpinning(efitick_t nowNt) const { /** * Also check if there were no trigger events */ - bool noTriggerEventsForTooLong = engine->triggerCentral.getTimeSinceTriggerEvent(nowNt) >= 1; + bool noTriggerEventsForTooLong = !engine->triggerCentral.engineMovedRecently(nowNt); if (noRpmEventsForTooLong || noTriggerEventsForTooLong) { return false; diff --git a/firmware/controllers/trigger/trigger_central.h b/firmware/controllers/trigger/trigger_central.h index 57772f1f5d..92b0f94904 100644 --- a/firmware/controllers/trigger/trigger_central.h +++ b/firmware/controllers/trigger/trigger_central.h @@ -70,11 +70,15 @@ public: return m_lastEventTimer.getElapsedSeconds(nowNt); } - bool engineMovedRecently() const { + bool engineMovedRecently(efitick_t nowNt) const { // Trigger event some time in the past second = engine moving // distributor single tooth, large engines crank at close to 120 RPM // todo: make this logic account current trigger to stop idle much faster if we have more teeth on trigger wheels? - return getTimeSinceTriggerEvent(getTimeNowNt()) < 1.0f; + return getTimeSinceTriggerEvent(nowNt) < 1.0f; + } + + bool engineMovedRecently() const { + return engineMovedRecently(getTimeNowNt()); } TriggerNoiseFilter noiseFilter;