~ruther/qmk_firmware

2f49cae9bcbdd94431659727ef75cfd30f557da8 — XScorpion2 6 years ago 29d7f9b
Fixing wrapping math logic for timer_expired functions (#6746)

1 files changed, 2 insertions(+), 2 deletions(-)

M tmk_core/common/timer.h
M tmk_core/common/timer.h => tmk_core/common/timer.h +2 -2
@@ 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
}