diff options
author | William Chang <[email protected]> | 2019-11-20 22:17:07 -0800 |
---|---|---|
committer | William Chang <[email protected]> | 2019-11-20 22:17:07 -0800 |
commit | e7f4d56592b3975c38af329e77b4efd9108495e8 (patch) | |
tree | 0a416bccbf70bfdbdb9ffcdb3bf136b47378c014 /tmk_core/common/wait.h | |
parent | 71493b2f9bbd5f3d18373c518fa14ccafcbf48fc (diff) | |
parent | 8416a94ad27b3ff058576f09f35f0704a8b39ff3 (diff) | |
download | qmk_firmware-e7f4d56592b3975c38af329e77b4efd9108495e8.tar.gz qmk_firmware-e7f4d56592b3975c38af329e77b4efd9108495e8.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'tmk_core/common/wait.h')
-rw-r--r-- | tmk_core/common/wait.h | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/tmk_core/common/wait.h b/tmk_core/common/wait.h index a77840bcef..cb1f386a61 100644 --- a/tmk_core/common/wait.h +++ b/tmk_core/common/wait.h @@ -8,22 +8,36 @@ extern "C" { #endif #if defined(__AVR__) -# include <util/delay.h> -# define wait_ms(ms) _delay_ms(ms) -# define wait_us(us) _delay_us(us) +# 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" -# define wait_ms(ms) chThdSleepMilliseconds(ms) -# define wait_us(us) chThdSleepMicroseconds(us) +# include "ch.h" +# define wait_ms(ms) \ + do { \ + if (ms != 0) { \ + chThdSleepMilliseconds(ms); \ + } else { \ + chThdSleepMicroseconds(1); \ + } \ + } while (0) +# define wait_us(us) \ + do { \ + if (us != 0) { \ + chThdSleepMicroseconds(us); \ + } else { \ + chThdSleepMicroseconds(1); \ + } \ + } while (0) #elif defined PROTOCOL_ARM_ATSAM -# include "clks.h" -# define wait_ms(ms) CLK_delay_ms(ms) -# define wait_us(us) CLK_delay_us(us) +# 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" +# include "wait_api.h" #else // Unit tests void wait_ms(uint32_t ms); -#define wait_us(us) wait_ms(us / 1000) +# define wait_us(us) wait_ms(us / 1000) #endif #ifdef __cplusplus |