From 3ece2827a48166d957d3e347035561d5a1104930 Mon Sep 17 00:00:00 2001 From: "David A. Mellis" Date: Fri, 30 Dec 2011 18:05:12 -0500 Subject: Simplifying microseconds <-> clock cycles conversions. (Rob Tillaart) This should fix problems with overflows in pulseIn(). It may make millis() slightly less precise for clock speeds that aren't multiple of 1 million, but we don't really support those anyway. http://code.google.com/p/arduino/issues/detail?id=675 --- cores/arduino/Arduino.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cores') diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h index c05b919..bfec943 100755 --- a/cores/arduino/Arduino.h +++ b/cores/arduino/Arduino.h @@ -73,8 +73,8 @@ extern "C"{ #define noInterrupts() cli() #define clockCyclesPerMicrosecond() ( F_CPU / 1000000L ) -#define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (F_CPU / 1000L) ) -#define microsecondsToClockCycles(a) ( ((a) * (F_CPU / 1000L)) / 1000L ) +#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() ) +#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() ) #define lowByte(w) ((uint8_t) ((w) & 0xff)) #define highByte(w) ((uint8_t) ((w) >> 8)) -- cgit v1.2.3-18-g5258