-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMilliTimer.h
59 lines (46 loc) · 870 Bytes
/
MilliTimer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
////////////////////////////////////////////////////////////
// A simple class to help with arduino based millisecond timers
////////////////////////////////////////////////////////////
#ifndef MilliTimer_h
#define MilliTimer_h
class CMilliTimer
{
public:
typedef enum
{
notSet,
running,
expired,
} CMilliTimerStateE;
protected:
unsigned long m_interval;
unsigned long m_startingMillis;
CMilliTimerStateE m_state;
public:
CMilliTimer()
{
reset();
}
virtual ~CMilliTimer() {}
void start(unsigned long _time)
{
m_startingMillis = millis();
m_interval = _time;
m_state = running;
}
CMilliTimerStateE getState()
{
if((m_state == running) && ((millis() - m_startingMillis) > m_interval))
{
m_state = expired;
}
return m_state;
}
void reset()
{
m_interval = 0;
m_startingMillis = 0;
m_state = notSet;
}
};
#endif