瀏覽代碼

Fix int wrapping for timer_expired macros and use MAX defines for consistency and clarity (#10996)

XScorpion2 4 年之前
父節點
當前提交
485e4524f4
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      tmk_core/common/timer.h

+ 2 - 2
tmk_core/common/timer.h

@@ -45,8 +45,8 @@ 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)
-#define timer_expired(current, future) (((uint16_t)current - (uint16_t)future) < 0x8000)
-#define timer_expired32(current, future) (((uint32_t)current - (uint32_t)future) < 0x80000000)
+#define timer_expired(current, future) ((uint16_t)(current - future) < UINT16_MAX / 2)
+#define timer_expired32(current, future) ((uint32_t)(current - future) < UINT32_MAX / 2)
 
 #ifdef __cplusplus
 }