From 5527f77589ea0d3a0da6bdd0db7d64d3ba89256e Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 28 Oct 2021 10:36:41 -0400 Subject: [PATCH] Honda K cam wheels #3405 --- firmware/controllers/algo/auto_generated_commonenum.cpp | 4 +++- firmware/controllers/algo/rusefi_enums.h | 2 ++ firmware/controllers/trigger/trigger_central.cpp | 9 +++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/firmware/controllers/algo/auto_generated_commonenum.cpp b/firmware/controllers/algo/auto_generated_commonenum.cpp index e2e1e9642e..7d45f3a66f 100644 --- a/firmware/controllers/algo/auto_generated_commonenum.cpp +++ b/firmware/controllers/algo/auto_generated_commonenum.cpp @@ -1,6 +1,6 @@ #include "global.h" #include "rusefi_enums.h" -// was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Sun Oct 24 19:26:38 UTC 2021 +// was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu Oct 28 10:22:55 EDT 2021 // see also gen_config_and_enums.bat @@ -680,6 +680,8 @@ case VVT_FIRST_HALF: return "VVT_FIRST_HALF"; case VVT_FORD_ST170: return "VVT_FORD_ST170"; +case VVT_HONDA_K: + return "VVT_HONDA_K"; case VVT_INACTIVE: return "VVT_INACTIVE"; case VVT_MIATA_NB2: diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index 333c588b60..31797a09e6 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -99,6 +99,8 @@ typedef enum __attribute__ ((__packed__)) { VVT_BARRA_3_PLUS_1 = 8, VVT_NISSAN_VQ = 9, + + VVT_HONDA_K = 10, } vvt_mode_e; /** diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index 53fe41d2a5..0dbf5e44c1 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -103,6 +103,7 @@ static bool vvtWithRealDecoder(vvt_mode_e vvtMode) { // todo: why does VVT_2JZ not use real decoder? return vvtMode != VVT_INACTIVE && vvtMode != VVT_2JZ + && vvtMode != VVT_HONDA_K && vvtMode != VVT_SECOND_HALF && vvtMode != VVT_FIRST_HALF; } @@ -251,7 +252,8 @@ void hwHandleVvtCamSignal(trigger_value_e front, efitick_t nowNt, int index DECL bool isImportantFront = (CONFIG(vvtCamSensorUseRise) ^ (front == TV_FALL)); - if (!vvtWithRealDecoder(engineConfiguration->vvtMode[camIndex]) && !isImportantFront) { + bool isVvtWithRealDecoder = vvtWithRealDecoder(engineConfiguration->vvtMode[camIndex]); + if (!isVvtWithRealDecoder && !isImportantFront) { // todo: there should be a way to always use real trigger code for this logic? return; } @@ -269,12 +271,14 @@ void hwHandleVvtCamSignal(trigger_value_e front, efitick_t nowNt, int index DECL return; } - tc->vvtState[bankIndex][camIndex].decodeTriggerEvent( + if (isVvtWithRealDecoder) { + tc->vvtState[bankIndex][camIndex].decodeTriggerEvent( tc->vvtShape[camIndex], nullptr, nullptr, engine->vvtTriggerConfiguration[camIndex], front == TV_RISE ? SHAFT_PRIMARY_RISING : SHAFT_PRIMARY_FALLING, nowNt); + } tc->vvtCamCounter++; @@ -319,6 +323,7 @@ void hwHandleVvtCamSignal(trigger_value_e front, efitick_t nowNt, int index DECL #endif /* EFI_TUNER_STUDIO */ } } + case VVT_HONDA_K: default: // else, do nothing break;