Library for a timer that can go for days (but only ms resolution)
Dependents: ExtendedTimer_Example FindingTemp Final_NSR NearSpaceOzoneSensor ... more
ExtendedTimer.h@1:c5e08765149f, 2019-05-09 (annotated)
- Committer:
- JLarkin
- Date:
- Thu May 09 20:03:12 2019 +0000
- Revision:
- 1:c5e08765149f
- Parent:
- 0:7a6067de3bff
Fixed reset method so doesn't also perform stop.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JLarkin | 0:7a6067de3bff | 1 | #ifndef EXTENDED_TIMER_H |
JLarkin | 0:7a6067de3bff | 2 | #define EXTENDED_TIMER_H |
JLarkin | 0:7a6067de3bff | 3 | |
JLarkin | 0:7a6067de3bff | 4 | #include "mbed.h" |
JLarkin | 0:7a6067de3bff | 5 | |
JLarkin | 0:7a6067de3bff | 6 | /** A timer appropriate for intervals up to about 20 days |
JLarkin | 0:7a6067de3bff | 7 | * |
JLarkin | 0:7a6067de3bff | 8 | * @author John M. Larkin (jlarkin@whitworth.edu) |
JLarkin | 0:7a6067de3bff | 9 | * @version 0.1 |
JLarkin | 0:7a6067de3bff | 10 | * @date 2017 |
JLarkin | 0:7a6067de3bff | 11 | * @copyright GNU Public License |
JLarkin | 0:7a6067de3bff | 12 | */ |
JLarkin | 0:7a6067de3bff | 13 | |
JLarkin | 0:7a6067de3bff | 14 | class ExtendedTimer { |
JLarkin | 0:7a6067de3bff | 15 | |
JLarkin | 0:7a6067de3bff | 16 | public: |
JLarkin | 0:7a6067de3bff | 17 | ExtendedTimer(); |
JLarkin | 0:7a6067de3bff | 18 | |
JLarkin | 0:7a6067de3bff | 19 | /** Start the timer |
JLarkin | 0:7a6067de3bff | 20 | */ |
JLarkin | 0:7a6067de3bff | 21 | void start(); |
JLarkin | 0:7a6067de3bff | 22 | |
JLarkin | 0:7a6067de3bff | 23 | /** Stop the timer |
JLarkin | 0:7a6067de3bff | 24 | */ |
JLarkin | 0:7a6067de3bff | 25 | void stop(); |
JLarkin | 0:7a6067de3bff | 26 | |
JLarkin | 0:7a6067de3bff | 27 | /** Reset the timer to 0 |
JLarkin | 0:7a6067de3bff | 28 | * |
JLarkin | 0:7a6067de3bff | 29 | * If it was already counting, it will continue |
JLarkin | 0:7a6067de3bff | 30 | */ |
JLarkin | 0:7a6067de3bff | 31 | void reset(); |
JLarkin | 0:7a6067de3bff | 32 | |
JLarkin | 0:7a6067de3bff | 33 | /** Get the time passed in milliseconds |
JLarkin | 0:7a6067de3bff | 34 | */ |
JLarkin | 0:7a6067de3bff | 35 | int read_ms(); |
JLarkin | 0:7a6067de3bff | 36 | |
JLarkin | 0:7a6067de3bff | 37 | /** Get the time passed in seconds |
JLarkin | 0:7a6067de3bff | 38 | */ |
JLarkin | 0:7a6067de3bff | 39 | float read(); |
JLarkin | 0:7a6067de3bff | 40 | |
JLarkin | 0:7a6067de3bff | 41 | /** An operator shorthand for read() |
JLarkin | 0:7a6067de3bff | 42 | */ |
JLarkin | 0:7a6067de3bff | 43 | operator float(); |
JLarkin | 0:7a6067de3bff | 44 | |
JLarkin | 0:7a6067de3bff | 45 | |
JLarkin | 0:7a6067de3bff | 46 | |
JLarkin | 0:7a6067de3bff | 47 | protected: |
JLarkin | 0:7a6067de3bff | 48 | int _running; // whether the timer is running |
JLarkin | 0:7a6067de3bff | 49 | unsigned int _time; // any accumulated time from previous slices |
JLarkin | 0:7a6067de3bff | 50 | Timer usTimer; |
JLarkin | 0:7a6067de3bff | 51 | Ticker usTimerWatch; |
JLarkin | 0:7a6067de3bff | 52 | void usTimerReset(); |
JLarkin | 0:7a6067de3bff | 53 | }; |
JLarkin | 0:7a6067de3bff | 54 | #endif |