From 50bf018fe998174fa2c8190ccb6b934745d73195 Mon Sep 17 00:00:00 2001 From: rusefi Date: Tue, 25 Jun 2019 18:20:01 -0400 Subject: [PATCH] https://rusefi.com/forum/viewtopic.php?f=10&t=442&p=33585#p33575 --- firmware/controllers/trigger/rpm_calculator.h | 1 + firmware/controllers/trigger/trigger_decoder.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/firmware/controllers/trigger/rpm_calculator.h b/firmware/controllers/trigger/rpm_calculator.h index 743d99a13b..009f689611 100644 --- a/firmware/controllers/trigger/rpm_calculator.h +++ b/firmware/controllers/trigger/rpm_calculator.h @@ -26,6 +26,7 @@ #define VVT_NAME "VVT" +// we use this value in case of noise on trigger input lines #define NOISY_RPM -1 #define UNREALISTIC_RPM 30000 diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index 37033c3809..ff177f38c8 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -181,6 +181,9 @@ float TriggerStateWithRunningStatistics::calculateInstantRpm(int *prevIndex, efi */ angle_t currentAngle = TRIGGER_SHAPE(eventAngles[current_index]); // todo: make this '90' depend on cylinder count or trigger shape? + if (cisnan(currentAngle)) { + return NOISY_RPM; + } angle_t previousAngle = currentAngle - 90; fixAngle(previousAngle, "prevAngle", CUSTOM_ERR_6560); // todo: prevIndex should be pre-calculated