From ad02e45a4a611dc26782f2bc1d2f5ebc92844e22 Mon Sep 17 00:00:00 2001 From: andreika-git Date: Fri, 2 Jun 2023 00:07:59 +0300 Subject: [PATCH] weak signal detector disabling option for trigger_input_adc --- .../digital_input/trigger/trigger_input_adc.cpp | 10 +++++++++- .../hw_layer/digital_input/trigger/trigger_input_adc.h | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/firmware/hw_layer/digital_input/trigger/trigger_input_adc.cpp b/firmware/hw_layer/digital_input/trigger/trigger_input_adc.cpp index 72133c31c6..e2508a22b8 100644 --- a/firmware/hw_layer/digital_input/trigger/trigger_input_adc.cpp +++ b/firmware/hw_layer/digital_input/trigger/trigger_input_adc.cpp @@ -407,11 +407,19 @@ void TriggerAdcDetector::analogCallback(efitick_t stamp, triggerAdcSample_t valu switchingTeethCnt = 0; } - prevValue = transition; prevStamp = stamp; #endif // ! EFI_SIMULATOR && EFI_SHAFT_POSITION_INPUT } +void TriggerAdcDetector::setWeakSignal(bool isWeak) { + isSignalWeak = isWeak; + if (!isSignalWeak) { + minDeltaThresholdCntPos = minDeltaThresholdCntNeg = DELTA_THRESHOLD_CNT_LOW; + } else { + minDeltaThresholdCntPos = minDeltaThresholdCntNeg = 0; + } +} + triggerAdcMode_t getTriggerAdcMode(void) { return trigAdcState.curAdcMode; } diff --git a/firmware/hw_layer/digital_input/trigger/trigger_input_adc.h b/firmware/hw_layer/digital_input/trigger/trigger_input_adc.h index e757d25f34..7500e13ee0 100644 --- a/firmware/hw_layer/digital_input/trigger/trigger_input_adc.h +++ b/firmware/hw_layer/digital_input/trigger/trigger_input_adc.h @@ -20,6 +20,8 @@ public: void digitalCallback(efitick_t stamp, bool isPrimary, bool rise); void analogCallback(efitick_t stamp, triggerAdcSample_t value); + void setWeakSignal(bool isWeak); + public: triggerAdcSample_t adcDefaultThreshold; triggerAdcSample_t adcMinThreshold;