- #ifndef WAIT_H
- #define WAIT_H
-
- #include <inttypes.h>
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if defined(__AVR__)
- # 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"
- // FIXME: This doesn't compile if `NKRO_ENABLED = no`
- # define wait_ms(ms) chSysPolledDelayX(MS2RTC(STM32_SYSCLK, ms))
- # define wait_us(us) chSysPolledDelayX(US2RTC(STM32_SYSCLK, us))
- #elif defined PROTOCOL_ARM_ATSAM
- # include "clks.h"
- # define wait_ms(ms) CLK_delay_ms(ms)
- # define wait_us(us) CLK_delay_us(us)
- #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
- }
- #endif
-
- #endif
|