]> git.donarmstrong.com Git - qmk_firmware.git/blob - tmk_core/common/wait.h
Remove mbed files (#7605)
[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 #    define wait_ms(ms)                     \
17         do {                                \
18             if (ms != 0) {                  \
19                 chThdSleepMilliseconds(ms); \
20             } else {                        \
21                 chThdSleepMicroseconds(1);  \
22             }                               \
23         } while (0)
24 #    define wait_us(us)                     \
25         do {                                \
26             if (us != 0) {                  \
27                 chThdSleepMicroseconds(us); \
28             } else {                        \
29                 chThdSleepMicroseconds(1);  \
30             }                               \
31         } while (0)
32 #elif defined PROTOCOL_ARM_ATSAM
33 #    include "clks.h"
34 #    define wait_ms(ms) CLK_delay_ms(ms)
35 #    define wait_us(us) CLK_delay_us(us)
36 #else  // Unit tests
37 void wait_ms(uint32_t ms);
38 #    define wait_us(us) wait_ms(us / 1000)
39 #endif
40
41 #ifdef __cplusplus
42 }
43 #endif
44
45 #endif