diff options
Diffstat (limited to 'cores/arduino/wiring.c')
-rwxr-xr-x | cores/arduino/wiring.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cores/arduino/wiring.c b/cores/arduino/wiring.c index 858ab72..719e0e2 100755 --- a/cores/arduino/wiring.c +++ b/cores/arduino/wiring.c @@ -97,10 +97,14 @@ unsigned long micros() { void delay(unsigned long ms) { - unsigned long start = millis(); - - while (millis() - start <= ms) - ; + uint16_t start = (uint16_t)micros(); + + while (ms > 0) { + if (((uint16_t)micros() - start) >= 1000) { + ms--; + start += 1000; + } + } } /* Delay for the given number of microseconds. Assumes a 8 or 16 MHz clock. */ |