You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
781 B

  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. // FIXME: This doesn't compile if `NKRO_ENABLED = no`
  14. # define wait_ms(ms) chSysPolledDelayX(MS2RTC(STM32_SYSCLK, ms))
  15. # define wait_us(us) chSysPolledDelayX(US2RTC(STM32_SYSCLK, us))
  16. #elif defined PROTOCOL_ARM_ATSAM
  17. # include "clks.h"
  18. # define wait_ms(ms) CLK_delay_ms(ms)
  19. # define wait_us(us) CLK_delay_us(us)
  20. #elif defined(__arm__)
  21. # include "wait_api.h"
  22. #else // Unit tests
  23. void wait_ms(uint32_t ms);
  24. # define wait_us(us) wait_ms(us / 1000)
  25. #endif
  26. #ifdef __cplusplus
  27. }
  28. #endif
  29. #endif