From 7ec0eeb562c028a983300b7ea70748cfd7575a2c Mon Sep 17 00:00:00 2001 From: andreika-git Date: Sat, 4 Nov 2017 00:04:24 +0200 Subject: [PATCH] Implement iacByTpsTaper (#486) --- firmware/controllers/idle_thread.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/firmware/controllers/idle_thread.cpp b/firmware/controllers/idle_thread.cpp index ef4f4d59c2..fe2aff4ffa 100644 --- a/firmware/controllers/idle_thread.cpp +++ b/firmware/controllers/idle_thread.cpp @@ -226,6 +226,11 @@ static msg_t ivThread(int param) { } else { iacPosition = autoIdle(cltCorrection); } + + percent_t tpsPos = getTPS(PASS_ENGINE_PARAMETER_SIGNATURE); + float additionalAir = (float)engineConfiguration->iacByTpsTaper; + iacPosition += interpolateClamped(0.0f, 0.0f, boardConfiguration->idlePidDeactivationTpsThreshold, additionalAir, tpsPos); + // taper transition from cranking to running (uint32_t to float conversion is safe here) if (engineConfiguration->afterCrankingIACtaperDuration > 0) iacPosition = interpolateClamped(lastCrankingCyclesCounter, lastCrankingIacPosition,