From 0d2f8e67e780edeb4a67b101934eea2920d55618 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Thu, 3 Dec 2020 13:32:01 -0500 Subject: [PATCH] avoid float -> int64 conversion #1977 both cases have to be relatively small durations of time cherry picking... --- firmware/controllers/algo/advance_map.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/firmware/controllers/algo/advance_map.cpp b/firmware/controllers/algo/advance_map.cpp index 6d1ba40220..2760a431dc 100644 --- a/firmware/controllers/algo/advance_map.cpp +++ b/firmware/controllers/algo/advance_map.cpp @@ -250,8 +250,9 @@ size_t getMultiSparkCount(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) { floatus_t multiDelay = CONFIG(multisparkSparkDuration); floatus_t multiDwell = CONFIG(multisparkDwell); - ENGINE(engineState.multispark.delay) = US2NT(multiDelay); - ENGINE(engineState.multispark.dwell) = US2NT(multiDwell); + // dwell times are below 10 seconds here so we use 32 bit type for performance reasons + ENGINE(engineState.multispark.delay) = (uint32_t)USF2NT(multiDelay); + ENGINE(engineState.multispark.dwell) = (uint32_t)USF2NT(multiDwell); constexpr float usPerDegreeAt1Rpm = 60e6 / 360; floatus_t usPerDegree = usPerDegreeAt1Rpm / rpm;