More accurate delay() function from BenF.

This commit is contained in:
David A. Mellis 2010-05-25 20:16:15 +00:00
parent 04475f4bfe
commit 67c0a1995a
1 changed files with 8 additions and 4 deletions

View File

@ -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. */