From b414aa755d1e111407b343a962b9d4f0f9079aca Mon Sep 17 00:00:00 2001 From: Adam Martini Date: Tue, 23 Jun 2020 13:33:25 -0700 Subject: [PATCH] int32 fix to mapping logic --- src/lv_misc/lv_math.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lv_misc/lv_math.c b/src/lv_misc/lv_math.c index 9e8a91b80..b2c914f2b 100644 --- a/src/lv_misc/lv_math.c +++ b/src/lv_misc/lv_math.c @@ -241,10 +241,10 @@ int64_t _lv_pow(int64_t base, int8_t exp) */ LV_ATTRIBUTE_FAST_MEM int16_t _lv_map(int16_t x, int16_t min_in, int16_t max_in, int16_t min, int16_t max) { - uint32_t slope = ((uint32_t)(max - min) * 1000) / (uint32_t)(max_in - min_in); /** times 1000 to avoid rounding errors*/ - uint32_t bias = min - (slope * min_in) / 1000; + int32_t slope = ((int32_t)(max - min) * 10000) / (int32_t)(max_in - min_in); /** times 10000 to avoid rounding errors*/ + int32_t bias = (int32_t)(min * 10000) - slope * min_in; - return bias + (slope * x) / 1000; + return (bias + slope * x) / 10000; } /**********************