Fixing wrapping math logic for timer_expired functions (#6746)
This commit is contained in:
parent
29d7f9b163
commit
2f49cae9bc
|
@ -45,9 +45,9 @@ uint16_t timer_elapsed(uint16_t last);
|
||||||
uint32_t timer_elapsed32(uint32_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)
|
// 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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue