Timer for accumulating 10 ms intervals that does not overflow after ~30 min

This class simply creates a timer that accumulates 10 millisecond intervals which does not overflow after about 30 min.

Committer:
jebradshaw
Date:
Mon Jul 11 18:26:47 2016 +0000
Revision:
3:9efa965d2111
Parent:
2:67e16d628edc
20160711;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jebradshaw 0:21dc6ad1a795 1 /** RunTimer class.
jebradshaw 0:21dc6ad1a795 2 * J. Bradshaw 20160519
jebradshaw 0:21dc6ad1a795 3 * library for building a 10 millisecond running timer
jebradshaw 0:21dc6ad1a795 4 *
jebradshaw 0:21dc6ad1a795 5 * Example:
jebradshaw 0:21dc6ad1a795 6 * @code
jebradshaw 0:21dc6ad1a795 7 * #include "mbed.h"
jebradshaw 0:21dc6ad1a795 8 * #include "RunTimer.h"
jebradshaw 0:21dc6ad1a795 9 *
jebradshaw 0:21dc6ad1a795 10 * Serial pc(USBTX,USBRX);
jebradshaw 0:21dc6ad1a795 11 * RunTimer runTime;
jebradshaw 0:21dc6ad1a795 12 *
jebradshaw 0:21dc6ad1a795 13 * int main() {
jebradshaw 0:21dc6ad1a795 14 * while(1){
jebradshaw 0:21dc6ad1a795 15 * pc.printf("Time=day=%02d hour=%02d min=%02d sec=%02d ms=%02d \r\n", runTime.day,runTime.hour,runTime.min,runTime.sec,runTime.ms)
jebradshaw 0:21dc6ad1a795 16 * wait(.02);
jebradshaw 0:21dc6ad1a795 17 * }
jebradshaw 0:21dc6ad1a795 18 * }
jebradshaw 0:21dc6ad1a795 19 * @endcode
jebradshaw 0:21dc6ad1a795 20 */
jebradshaw 0:21dc6ad1a795 21 #ifndef MBED_RUNTIMER_H
jebradshaw 0:21dc6ad1a795 22 #define MBED_RUNTIMER_H
jebradshaw 0:21dc6ad1a795 23
jebradshaw 0:21dc6ad1a795 24 #include "mbed.h"
jebradshaw 0:21dc6ad1a795 25
jebradshaw 0:21dc6ad1a795 26 class RunTimer{
jebradshaw 0:21dc6ad1a795 27
jebradshaw 0:21dc6ad1a795 28 public:
jebradshaw 0:21dc6ad1a795 29 RunTimer();
jebradshaw 0:21dc6ad1a795 30
jebradshaw 0:21dc6ad1a795 31 void timeAcc(void);
jebradshaw 0:21dc6ad1a795 32 void Reset(void);
jebradshaw 0:21dc6ad1a795 33
jebradshaw 0:21dc6ad1a795 34 Ticker timer_10ms; //Ticker for adding 10ms
jebradshaw 0:21dc6ad1a795 35
jebradshaw 3:9efa965d2111 36 float ms_total;
jebradshaw 0:21dc6ad1a795 37 unsigned int ms;
jebradshaw 0:21dc6ad1a795 38 unsigned int sec;
jebradshaw 0:21dc6ad1a795 39 unsigned int min;
jebradshaw 0:21dc6ad1a795 40 unsigned int hour;
jebradshaw 2:67e16d628edc 41 unsigned int day;
jebradshaw 0:21dc6ad1a795 42 };
jebradshaw 0:21dc6ad1a795 43
jebradshaw 0:21dc6ad1a795 44 #endif