wait.h 802 B

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef WAIT_H
  2. #define WAIT_H
  3. #include <inttypes.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #if defined(__AVR__)
  8. # include <util/delay.h>
  9. # define wait_ms(ms) _delay_ms(ms)
  10. # define wait_us(us) _delay_us(us)
  11. #elif defined PROTOCOL_CHIBIOS
  12. # include "ch.h"
  13. # include "hal.h"
  14. // FIXME: This doesn't compile if `NKRO_ENABLED = no`
  15. # define wait_ms(ms) chSysPolledDelayX(MS2RTC(STM32_SYSCLK, ms))
  16. # define wait_us(us) chSysPolledDelayX(US2RTC(STM32_SYSCLK, us))
  17. #elif defined PROTOCOL_ARM_ATSAM
  18. # include "clks.h"
  19. # define wait_ms(ms) CLK_delay_ms(ms)
  20. # define wait_us(us) CLK_delay_us(us)
  21. #elif defined(__arm__)
  22. # include "wait_api.h"
  23. #else // Unit tests
  24. void wait_ms(uint32_t ms);
  25. # define wait_us(us) wait_ms(us / 1000)
  26. #endif
  27. #ifdef __cplusplus
  28. }
  29. #endif
  30. #endif