]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Fixing wrapping math logic for timer_expired functions (#6746)
authorXScorpion2 <rcalt2vt@gmail.com>
Sun, 22 Sep 2019 14:52:33 +0000 (09:52 -0500)
committerfauxpark <fauxpark@gmail.com>
Sun, 22 Sep 2019 14:52:33 +0000 (00:52 +1000)
tmk_core/common/timer.h

index 853cb9839687670ebf3518f118f8efcf0eac87a9..378cf7892c1c13f265ca4cf4fb51b37d7f304e90 100644 (file)
@@ -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
 }