From 9fc613ad6ffd66454390fd8e32be7ff740a41282 Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Tue, 23 Dec 2008 00:17:14 +0000 Subject: [PATCH] Fixing delay() to delay at least N milliseconds. Fixing register name in micros() for ATmega8. --- hardware/cores/arduino/wiring.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hardware/cores/arduino/wiring.c b/hardware/cores/arduino/wiring.c index 289664759..aaf7b8649 100755 --- a/hardware/cores/arduino/wiring.c +++ b/hardware/cores/arduino/wiring.c @@ -59,8 +59,14 @@ unsigned long micros() { cli(); t = TCNT0; + +#ifdef TIFR0 if ((TIFR0 & _BV(TOV0)) && (t == 0)) t = 256; +#else + if ((TIFR & _BV(TOV0)) && (t == 0)) + t = 256; +#endif m = timer0_overflow_count; SREG = oldSREG; @@ -72,7 +78,7 @@ void delay(unsigned long ms) { unsigned long start = millis(); - while (millis() - start < ms) + while (millis() - start <= ms) ; }