From c606bb27ace92da285c1050ec3f192f26cfbccf1 Mon Sep 17 00:00:00 2001 From: rusefi Date: Fri, 22 Nov 2019 18:50:46 -0500 Subject: [PATCH] aux overlap debugging --- firmware/controllers/engine_controller.cpp | 2 +- firmware/controllers/trigger/aux_valves.cpp | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 3c1cb923f2..54ad784921 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -818,6 +818,6 @@ int getRusEfiVersion(void) { if (initBootloader() != 0) return 123; #endif /* EFI_BOOTLOADER_INCLUDE_CODE */ - return 20191120; + return 20191122; } #endif /* EFI_UNIT_TEST */ diff --git a/firmware/controllers/trigger/aux_valves.cpp b/firmware/controllers/trigger/aux_valves.cpp index 5efcbff995..e08af9cfea 100644 --- a/firmware/controllers/trigger/aux_valves.cpp +++ b/firmware/controllers/trigger/aux_valves.cpp @@ -62,15 +62,25 @@ static void auxValveTriggerCallback(trigger_event_e ckpSignalType, */ angle_t extra = phaseIndex * 360 + valveIndex * 180; angle_t onTime = extra + engine->engineState.auxValveStart; + scheduling_s *onEvent = &turnOnEvent[valveIndex][phaseIndex]; + scheduling_s *offEvent = &turnOffEvent[valveIndex][phaseIndex]; + bool isOverlap = onEvent->isScheduled || offEvent->isScheduled; + if (isOverlap) { + enginePins.debugTriggerSync.setValue(1); + } + fixAngle(onTime, "onTime", CUSTOM_ERR_6556); - scheduleByAngle(rpm, &turnOnEvent[valveIndex][phaseIndex], + scheduleByAngle(rpm, onEvent, onTime, (schfunc_t) &turnOn, output PASS_ENGINE_PARAMETER_SUFFIX); angle_t offTime = extra + engine->engineState.auxValveEnd; fixAngle(offTime, "offTime", CUSTOM_ERR_6557); - scheduleByAngle(rpm, &turnOffEvent[valveIndex][phaseIndex], + scheduleByAngle(rpm, offEvent, offTime, (schfunc_t) &turnOff, output PASS_ENGINE_PARAMETER_SUFFIX); + if (isOverlap) { + enginePins.debugTriggerSync.setValue(0); + } } } }