|
|
@ -17,8 +17,26 @@ |
|
|
|
|
|
|
|
#include <util/delay.h> |
|
|
|
|
|
|
|
#define wait_ms(ms) _delay_ms(ms) |
|
|
|
#define wait_us(us) _delay_us(us) |
|
|
|
#define wait_ms(ms) \ |
|
|
|
do { \ |
|
|
|
if (__builtin_constant_p(ms)) { \ |
|
|
|
_delay_ms(ms); \ |
|
|
|
} else { \ |
|
|
|
for (uint16_t i = ms; i > 0; i--) { \ |
|
|
|
_delay_ms(1); \ |
|
|
|
} \ |
|
|
|
} \ |
|
|
|
} while (0) |
|
|
|
#define wait_us(us) \ |
|
|
|
do { \ |
|
|
|
if (__builtin_constant_p(us)) { \ |
|
|
|
_delay_us(us); \ |
|
|
|
} else { \ |
|
|
|
for (uint16_t i = us; i > 0; i--) { \ |
|
|
|
_delay_us(1); \ |
|
|
|
} \ |
|
|
|
} \ |
|
|
|
} while (0) |
|
|
|
|
|
|
|
/* The AVR series GPIOs have a one clock read delay for changes in the digital input signal. |
|
|
|
* But here's more margin to make it two clocks. */ |
|
|
|