aboutsummaryrefslogtreecommitdiff
path: root/cores
diff options
context:
space:
mode:
authorDavid A. Mellis <d.mellis@arduino.cc>2011-12-30 18:05:12 -0500
committerDavid A. Mellis <d.mellis@arduino.cc>2011-12-30 18:05:12 -0500
commit3ece2827a48166d957d3e347035561d5a1104930 (patch)
tree4b60f6c72bbe6fa6bd38552e1e952826ba6abaac /cores
parent51840644864088fc17bef2476fec47e026653d09 (diff)
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
Diffstat (limited to 'cores')
-rwxr-xr-xcores/arduino/Arduino.h4
1 files changed, 2 insertions, 2 deletions
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))