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.
RunTimer.cpp@0:21dc6ad1a795, 2016-05-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |