diff options
author | David A. Mellis <d.mellis@arduino.cc> | 2011-12-30 18:05:12 -0500 |
---|---|---|
committer | David A. Mellis <d.mellis@arduino.cc> | 2011-12-30 18:05:12 -0500 |
commit | 3ece2827a48166d957d3e347035561d5a1104930 (patch) | |
tree | 4b60f6c72bbe6fa6bd38552e1e952826ba6abaac | |
parent | 51840644864088fc17bef2476fec47e026653d09 (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
-rwxr-xr-x | cores/arduino/Arduino.h | 4 |
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)) |