invert vvt in one spot, like trigger

This commit is contained in:
Matthew Kennedy 2023-02-28 13:13:29 -08:00
parent 6ddf551c3f
commit a2652d31dc
5 changed files with 5 additions and 6 deletions

View File

@ -479,8 +479,6 @@ static void enableOrDisable(const char *param, bool isEnabled) {
engineConfiguration->verboseTriggerSynchDetails = isEnabled; engineConfiguration->verboseTriggerSynchDetails = isEnabled;
} else if (strEqualCaseInsensitive(param, "vvt_details")) { } else if (strEqualCaseInsensitive(param, "vvt_details")) {
engineConfiguration->verboseVVTDecoding = isEnabled; engineConfiguration->verboseVVTDecoding = isEnabled;
} else if (strEqualCaseInsensitive(param, "invertCamVVTSignal")) {
engineConfiguration->invertCamVVTSignal = isEnabled;
} else if (strEqualCaseInsensitive(param, CMD_IGNITION)) { } else if (strEqualCaseInsensitive(param, CMD_IGNITION)) {
engineConfiguration->isIgnitionEnabled = isEnabled; engineConfiguration->isIgnitionEnabled = isEnabled;
#if EFI_EMULATE_POSITION_SENSORS #if EFI_EMULATE_POSITION_SENSORS

View File

@ -229,6 +229,9 @@ void hwHandleVvtCamSignal(bool isRising, efitick_t nowNt, int index) {
return; return;
} }
// Invert if so configured
isRising ^= engineConfiguration->invertCamVVTSignal;
int bankIndex = index / CAMS_PER_BANK; int bankIndex = index / CAMS_PER_BANK;
int camIndex = index % CAMS_PER_BANK; int camIndex = index % CAMS_PER_BANK;
if (isRising) { if (isRising) {

View File

@ -42,8 +42,6 @@ static void cam_callback(void *arg, efitick_t stamp) {
bool rise = (palReadLine(pal_line) == PAL_HIGH); bool rise = (palReadLine(pal_line) == PAL_HIGH);
rise ^= engineConfiguration->invertCamVVTSignal;
hwHandleVvtCamSignal(rise, stamp, index); hwHandleVvtCamSignal(rise, stamp, index);
} }

View File

@ -107,7 +107,7 @@ void CsvReader::processLine(EngineTestHelper *eth) {
} }
efitick_t nowNt = getTimeNowNt(); efitick_t nowNt = getTimeNowNt();
bool isRising = newVvtState[vvtIndex] ^ engineConfiguration->invertCamVVTSignal; bool isRising = newVvtState[vvtIndex];
// todo: configurable selection of vvt mode - dual bank or dual cam single bank // todo: configurable selection of vvt mode - dual bank or dual cam single bank
int bankIndex; int bankIndex;
int camIndex; int camIndex;

View File

@ -27,7 +27,7 @@ static void func(TriggerCallback *callback) {
efitick_t nowNt = getTimeNowNt(); efitick_t nowNt = getTimeNowNt();
if (callback->isVvt) { if (callback->isVvt) {
hwHandleVvtCamSignal(value, nowNt, callback->vvtBankIndex * CAMS_PER_BANK); hwHandleVvtCamSignal(!value, nowNt, callback->vvtBankIndex * CAMS_PER_BANK);
} else { } else {
handleShaftSignal(0, value, nowNt); handleShaftSignal(0, value, nowNt);
} }