From 2f49cae9bcbdd94431659727ef75cfd30f557da8 Mon Sep 17 00:00:00 2001 From: XScorpion2 Date: Sun, 22 Sep 2019 09:52:33 -0500 Subject: [PATCH] Fixing wrapping math logic for timer_expired functions (#6746) --- tmk_core/common/timer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tmk_core/common/timer.h b/tmk_core/common/timer.h index 853cb9839687..378cf7892c1c 100644 --- a/tmk_core/common/timer.h +++ b/tmk_core/common/timer.h @@ -45,9 +45,9 @@ uint16_t timer_elapsed(uint16_t last); uint32_t timer_elapsed32(uint32_t last); // Utility functions to check if a future time has expired & autmatically handle time wrapping if checked / reset frequently (half of max value) -inline bool timer_expired(uint16_t current, uint16_t last) { return current - last < 0x8000; } +inline bool timer_expired(uint16_t current, uint16_t future) { return (uint16_t)(current - future) < 0x8000; } -inline bool timer_expired32(uint32_t current, uint32_t future) { return current - future < 0x80000000; } +inline bool timer_expired32(uint32_t current, uint32_t future) { return (uint32_t)(current - future) < 0x80000000; } #ifdef __cplusplus }