]> git.donarmstrong.com Git - qmk_firmware.git/blob - tmk_core/common/wait.h
Clueboard 60% support (#1746)
[qmk_firmware.git] / tmk_core / common / wait.h
1 #ifndef WAIT_H
2 #define WAIT_H
3
4 #include <inttypes.h>
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10 #if defined(__AVR__)
11 #   include <util/delay.h>
12 #   define wait_ms(ms)  _delay_ms(ms)
13 #   define wait_us(us)  _delay_us(us)
14 #elif defined PROTOCOL_CHIBIOS
15 #   include "ch.h"
16 #   if defined(STM32F3xx_MCUCONF)
17 #       define wait_ms(ms) chSysPolledDelayX(MS2RTC(STM32_HCLK, (ms)))
18 #       define wait_us(us) chSysPolledDelayX(US2RTC(STM32_HCLK, (us)))
19 #   else
20 #       define wait_ms(ms) chThdSleepMilliseconds(ms)
21 #       define wait_us(us) chThdSleepMicroseconds(us)
22 #   endif
23 #elif defined(__arm__)
24 #   include "wait_api.h"
25 #else  // Unit tests
26 void wait_ms(uint32_t ms);
27 #define wait_us(us) wait_ms(us / 1000)
28 #endif
29
30 #ifdef __cplusplus
31 }
32 #endif
33
34 #endif