Awesome
Timestamp measuring library for Arduino
This is a timestamp library for Arduino that can be used to measure execution time in microseconds or milliseconds.
Hardware
Any Arduino / ESP8266 board.
Library documentation
Examples
Arduino IDE | Examples | Erriez Timestamp:
Example output Timestamp | Microseconds
Timestamp with microseconds resolution example
Printing this message takes: 768us
And this message takes: 2044us
delayMicroseconds(15) duration: 20us
analogRead() duration: 212us
digitalRead() duration: 4us
Example output Timestamp | Milliseconds
Timestamp with milliseconds resolution example
delay(15) takes:
15ms
14ms
16ms
15ms
15ms
16ms
14ms
15ms
16ms
15ms
Usage
Initialization
Add include file:
#include <ErriezTimestamp.h>
Create timestamp object with microseconds resolution:
TimestampMicros timestamp;
Create timestamp object with milliseconds resolution:
TimestampMillis timestamp;
Single measurement
unsigned long duration;
// Start measurement
timestamp.start();
// Do something
duration = timestamp.delta();
// Start new measurement
timestamp.start();
// Do something
duration = timestamp.delta();
Multiple measurements
// Start timestamp
timestamp.start();
// Do something and print timstamp
timestamp.print();
// Do something and print timestamp without calling start()
timestamp.print();
Constraints
TimestampMicros uses the function micros()
.
TimestampMillis uses the function millis()
.
Please refer to the description of these functions for the maximum possible duration and minimum resolution:
- https://www.arduino.cc/reference/en/language/functions/time/micros/
- https://www.arduino.cc/reference/en/language/functions/time/millis/
The timestamp functions introduce a small calling overhead on low-end microcontrollers.
For example calling start()
and delta()
on an Arduino UNO may take an additional 4 to 8 microseconds.
This is overhead is negligible on targets with a higher CPU clock such as the ESP8266.
Library installation
Please refer to the Wiki page.