Library for a timer that can go for days (but only ms resolution)

Dependents:   ExtendedTimer_Example FindingTemp Final_NSR NearSpaceOzoneSensor ... more

Committer:
JLarkin
Date:
Thu Mar 09 23:05:17 2017 +0000
Revision:
0:7a6067de3bff
Library for a timer that can go for days (but only ms resolution)

Who changed what in which revision?

UserRevisionLine numberNew 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