diff --git a/firmware/controllers/algo/advance_map.cpp b/firmware/controllers/algo/advance_map.cpp index 61d2ad94d4..3edede7d84 100644 --- a/firmware/controllers/algo/advance_map.cpp +++ b/firmware/controllers/algo/advance_map.cpp @@ -29,7 +29,7 @@ // TODO: wow move this into engineState at least for context not to leak from test to test! // todo: reset this between cranking attempts?! #2735 -int minCrankingRpm = 0; +float minCrankingRpm = 0; static Map3D tcTimingDropTable{"tct"}; static Map3D tcSparkSkipTable{"tcs"}; @@ -39,7 +39,7 @@ static Map3DuseSeparateAdvanceForCranking) { return interpolate2d(rpm, config->crankingAdvanceBins, config->crankingAdvance); @@ -169,7 +169,7 @@ angle_t getCrankingAdvance(int rpm, float engineLoad) { } #endif // EFI_ENGINE_CONTROL && EFI_SHAFT_POSITION_INPUT -angle_t getAdvance(int rpm, float engineLoad) { +angle_t getAdvance(float rpm, float engineLoad) { #if EFI_ENGINE_CONTROL && EFI_SHAFT_POSITION_INPUT if (std::isnan(engineLoad)) { return 0; // any error should already be reported @@ -212,13 +212,13 @@ angle_t getAdvance(int rpm, float engineLoad) { #endif } -angle_t getWrappedAdvance(const int rpm, const float engineLoad) { +angle_t getWrappedAdvance(const float rpm, const float engineLoad) { angle_t angle = getAdvance(rpm, engineLoad) * engine->ignitionState.luaTimingMult + engine->ignitionState.luaTimingAdd; wrapAngle(angle, "getWrappedAdvance", ObdCode::CUSTOM_ERR_ADCANCE_CALC_ANGLE); return angle; } -angle_t getCylinderIgnitionTrim(size_t cylinderNumber, int rpm, float ignitionLoad) { +angle_t getCylinderIgnitionTrim(size_t cylinderNumber, float rpm, float ignitionLoad) { return interpolate3d( config->ignTrims[cylinderNumber].table, config->ignTrimLoadBins, ignitionLoad, @@ -226,7 +226,7 @@ angle_t getCylinderIgnitionTrim(size_t cylinderNumber, int rpm, float ignitionLo ); } -size_t getMultiSparkCount(int rpm) { +size_t getMultiSparkCount(float rpm) { // Compute multispark (if enabled) if (engineConfiguration->multisparkEnable && rpm <= engineConfiguration->multisparkMaxRpm diff --git a/firmware/controllers/algo/advance_map.h b/firmware/controllers/algo/advance_map.h index 60ec69d71b..17044be942 100644 --- a/firmware/controllers/algo/advance_map.h +++ b/firmware/controllers/algo/advance_map.h @@ -9,18 +9,18 @@ #pragma once -angle_t getWrappedAdvance(int rpm, float engineLoad); -angle_t getCylinderIgnitionTrim(size_t cylinderNumber, int rpm, float ignitionLoad); +angle_t getWrappedAdvance(float rpm, float engineLoad); +angle_t getCylinderIgnitionTrim(size_t cylinderNumber, float rpm, float ignitionLoad); /** * this method is used to build default advance map */ -float getInitialAdvance(int rpm, float map, float advanceMax); +float getInitialAdvance(float rpm, float map, float advanceMax); // public only for unit tests -angle_t getCrankingAdvance(int rpm, float engineLoad); -angle_t getRunningAdvance(int rpm, float engineLoad); +angle_t getCrankingAdvance(float rpm, float engineLoad); +angle_t getRunningAdvance(float rpm, float engineLoad); angle_t getAdvanceCorrections(float engineLoad); -size_t getMultiSparkCount(int rpm); +size_t getMultiSparkCount(float rpm); void initIgnitionAdvanceControl(); class IgnitionState : public ignition_state_s {