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 13:37:02 2016 +0000
Revision:
0:21dc6ad1a795
Child:
1:134292d456c9
class for creating a timer that runs at 10 milliseconds

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 0:21dc6ad1a795 8 this->days = 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 0:21dc6ad1a795 26 days++;
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 0:21dc6ad1a795 34 this->T_ms=0;
jebradshaw 0:21dc6ad1a795 35 this->T_sec =0;
jebradshaw 0:21dc6ad1a795 36 this->T_min = 0;
jebradshaw 0:21dc6ad1a795 37 this->T_hour = 0;
jebradshaw 0:21dc6ad1a795 38 this->T_days = 0;
jebradshaw 0:21dc6ad1a795 39 }