#ifndef WAIT_H #define WAIT_H #include #ifdef __cplusplus extern "C" { #endif #if defined(__AVR__) # include # 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, x)) #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