From 26356adf928185ebd781fbc7b2a8e1ea4322bdb0 Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Sun, 25 Sep 2022 07:10:31 -0700 Subject: [PATCH] also invert trigger stim if you have trigger input inverted (#4612) --- firmware/controllers/trigger/trigger_emulator_algo.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/firmware/controllers/trigger/trigger_emulator_algo.cpp b/firmware/controllers/trigger/trigger_emulator_algo.cpp index 07ce427fb5..8d54986d3b 100644 --- a/firmware/controllers/trigger/trigger_emulator_algo.cpp +++ b/firmware/controllers/trigger/trigger_emulator_algo.cpp @@ -46,9 +46,12 @@ void TriggerEmulatorHelper::handleEmulatorCallback(const MultiChannelStateSequen #if EFI_SHAFT_POSITION_INPUT for (size_t i = 0; i < PWM_PHASE_MAX_WAVE_PER_PWM; i++) { if (needEvent(stateIndex, multiChannelStateSequence, i)) { - pin_state_t currentValue = multiChannelStateSequence.getChannelState(/*phaseIndex*/i, stateIndex); + bool isRise = TriggerValue::RISE == multiChannelStateSequence.getChannelState(/*phaseIndex*/i, stateIndex); - handleShaftSignal(i, currentValue == TriggerValue::RISE, stamp); + isRise ^= (i == 0 && engineConfiguration->invertPrimaryTriggerSignal); + isRise ^= (i == 1 && engineConfiguration->invertSecondaryTriggerSignal); + + handleShaftSignal(i, isRise, stamp); } } #endif // EFI_SHAFT_POSITION_INPUT