ソースを参照

Fixing wrapping math logic for timer_expired functions (#6746)

XScorpion2 5 年 前
コミット
2f49cae9bc
1 ファイル変更2 行追加2 行削除
  1. 2 2
      tmk_core/common/timer.h

+ 2 - 2
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
 }