]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - tmk_core/common/wait.h
Do some cleanup for the API
[qmk_firmware.git] / tmk_core / common / wait.h
index 40d00b0c75184e88f1effc9a9153bde01979d9fc..553f5243f1b824545555462832701bd0aadeb707 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef WAIT_H
 #define WAIT_H
 
+#include <inttypes.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -9,8 +11,20 @@ extern "C" {
 #   include <util/delay.h>
 #   define wait_ms(ms)  _delay_ms(ms)
 #   define wait_us(us)  _delay_us(us)
+#elif defined PROTOCOL_CHIBIOS
+#   include "ch.h"
+#   if defined(STM32F3xx_MCUCONF)
+#       define wait_ms(ms) chSysPolledDelayX(MS2RTC(STM32_HCLK, (ms)))
+#       define wait_us(us) chSysPolledDelayX(US2RTC(STM32_HCLK, (us)))
+#   else
+#       define wait_ms(ms) chThdSleepMilliseconds(ms)
+#       define wait_us(us) chThdSleepMicroseconds(us)
+#   endif
 #elif defined(__arm__)
 #   include "wait_api.h"
+#else  // Unit tests
+void wait_ms(uint32_t ms);
+#define wait_us(us) wait_ms(us / 1000)
 #endif
 
 #ifdef __cplusplus