Browse Source

Fix timer_elapsed() overflow issue for STM32F103 and other ChibiOS boards (#7595)

* fixed strange space cadet timer owerflow on STM32F103

* Moved elapsed time fix to timer.c
Pavel Župa 5 years ago
parent
commit
4e6d1ae0ea
1 changed files with 6 additions and 2 deletions
  1. 6 2
      tmk_core/common/chibios/timer.c

+ 6 - 2
tmk_core/common/chibios/timer.c

@@ -28,6 +28,10 @@ uint32_t timer_read32(void) {
     return current_time_ms;
 }
 
-uint16_t timer_elapsed(uint16_t last) { return timer_read() - last; }
+uint16_t timer_elapsed(uint16_t last) {
+    return TIMER_DIFF_16(timer_read(), last);
+}
 
-uint32_t timer_elapsed32(uint32_t last) { return timer_read32() - last; }
+uint32_t timer_elapsed32(uint32_t last) {
+    return TIMER_DIFF_32(timer_read32(), last);
+}