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:
Thu May 19 16:45:31 2016 +0000
Revision:
2:67e16d628edc
Parent:
1:134292d456c9
Child:
3:9efa965d2111
RunTimer library for 10 millisecond timer day,hour,min,sec,ms

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jebradshaw 0:21dc6ad1a795 1 #include "RunTimer.h"
jebradshaw 0:21dc6ad1a795 2
jebradshaw 0:21dc6ad1a795 3 RunTimer::RunTimer(){
jebradshaw 0:21dc6ad1a795 4 this->ms=0;
jebradshaw 0:21dc6ad1a795 5 this->sec =0;
jebradshaw 0:21dc6ad1a795 6 this->min = 0;
jebradshaw 0:21dc6ad1a795 7 this->hour = 0;
jebradshaw 2:67e16d628edc 8 this->day = 0;
jebradshaw 0:21dc6ad1a795 9
jebradshaw 0:21dc6ad1a795 10 this->timer_10ms.attach(this, &RunTimer::timeAcc, .01);
jebradshaw 0:21dc6ad1a795 11 }
jebradshaw 0:21dc6ad1a795 12
jebradshaw 0:21dc6ad1a795 13 void RunTimer::timeAcc(void){
jebradshaw 0:21dc6ad1a795 14 this->ms +=10;
jebradshaw 0:21dc6ad1a795 15 if(this->ms == 1000){
jebradshaw 0:21dc6ad1a795 16 this->ms = 0;
jebradshaw 0:21dc6ad1a795 17 this->sec++;
jebradshaw 0:21dc6ad1a795 18 if(this->sec==60){
jebradshaw 0:21dc6ad1a795 19 this->sec=0;
jebradshaw 0:21dc6ad1a795 20 this->min++;
jebradshaw 0:21dc6ad1a795 21 if(this->min == 60){
jebradshaw 0:21dc6ad1a795 22 this->min=0;
jebradshaw 0:21dc6ad1a795 23 this->hour++;
jebradshaw 0:21dc6ad1a795 24 if(this->hour==24){
jebradshaw 0:21dc6ad1a795 25 this->hour=0;
jebradshaw 2:67e16d628edc 26 day++;
jebradshaw 0:21dc6ad1a795 27 }
jebradshaw 0:21dc6ad1a795 28 }
jebradshaw 0:21dc6ad1a795 29 }
jebradshaw 0:21dc6ad1a795 30 }
jebradshaw 0:21dc6ad1a795 31 }//timeAcc
jebradshaw 0:21dc6ad1a795 32
jebradshaw 0:21dc6ad1a795 33 void RunTimer::Reset(void){
jebradshaw 1:134292d456c9 34 this->ms=0;
jebradshaw 1:134292d456c9 35 this->sec =0;
jebradshaw 1:134292d456c9 36 this->min = 0;
jebradshaw 1:134292d456c9 37 this->hour = 0;
jebradshaw 2:67e16d628edc 38 this->day = 0;
jebradshaw 0:21dc6ad1a795 39 }