Timing Functions
Several functions are available to help you control the timing or speed your program performs its actions.This table can help you choose the appropriate feature.
Feature | Summary | Typical Uses | Gotchas |
---|---|---|---|
delay() | Wait: 1 ms to 49.7 days | Simple programs, easiest to use | Can't do anything while waiting |
Metro Library | Recurring timing functions | Schedule work at regular intervals | Must repetitively call check() function |
elapsedMillis elapsedMicros |
Variables that automatically increment | General purpose: scheduling work, timeout waiting for input, etc. | Variables must be outside functions. Avoid compare equals. |
delayMicroseconds() delayNanoseconds() |
Wait: 1 µs to 16 ms | Short delays for hardware response | Interrupts can lengthen delay |
millis() micros() |
Time since your code began | General purpose | Math & rollover handling required |
IntervalTimer | Function called at regular intervals | Accessing hardware with precise timing | Advanced interrupt programming is required |
ARM Cycle Counter | Counter increments with CPU clock | Measure time with highest precision | Only usable for short times |
Time Library TimeAlarms Lib. |
Date & Time | Keeping track of calendar time | Extra hardware required to retain while power is off |
RTC Functions | Date & Time | Keeping track of calendar time, direct RTC access without Time library | Extra hardware required to retain while power is off |