From 7886619248ebf17c420922104b2f2c34867d0101 Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 2 Dec 2017 21:16:42 -0500 Subject: [PATCH] #490 fixing offset defect --- firmware/controllers/trigger/aux_valves.cpp | 11 +++++++++-- firmware/rusefi.cpp | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/firmware/controllers/trigger/aux_valves.cpp b/firmware/controllers/trigger/aux_valves.cpp index 18a580e8cf..6d4b4e6c0e 100644 --- a/firmware/controllers/trigger/aux_valves.cpp +++ b/firmware/controllers/trigger/aux_valves.cpp @@ -32,10 +32,12 @@ static void turnOff(NamedOutputPin *output) { output->setLow(); } +#define SCHEDULING_TRIGGER_INDEX 2 + static void auxValveTriggerCallback(trigger_event_e ckpSignalType, uint32_t index DECLARE_ENGINE_PARAMETER_SUFFIX) { #if EFI_PROD_CODE || EFI_SIMULATOR || defined(__DOXYGEN__) - if (index != 2) { + if (index != SCHEDULING_TRIGGER_INDEX) { return; } int rpm = ENGINE(rpmCalculator.rpmValue); @@ -49,7 +51,12 @@ static void auxValveTriggerCallback(trigger_event_e ckpSignalType, NamedOutputPin *output = &enginePins.auxValve[valveIndex]; for (int phaseIndex = 0; phaseIndex < 2; phaseIndex++) { - angle_t extra = phaseIndex * 360 + valveIndex * 180; + // todo: at the moment this logic is assuming four-stroke 720-degree engine cycle + angle_t extra = phaseIndex * 360 // cycle opens twice per 720 engine cycle + + valveIndex * 180 // 2nd valve is operating at 180 offset to first + + tdcPosition() // engine cycle position to trigger cycle position conversion + - ENGINE(triggerCentral.triggerShape.eventAngles[SCHEDULING_TRIGGER_INDEX]) + ; angle_t onTime = extra + engine->engineState.auxValveStart; fixAngle(onTime, "onTime"); scheduleByAngle(rpm, &turnOnEvent[valveIndex][phaseIndex], diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index a7c5744517..0d941620d0 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -260,5 +260,5 @@ int getRusEfiVersion(void) { if (initBootloader() != 0) return 123; #endif /* EFI_BOOTLOADER_INCLUDE_CODE */ - return 20171201; + return 20171202; }