-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRoboHeartTimer.cpp
45 lines (37 loc) · 1.06 KB
/
RoboHeartTimer.cpp
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
/*!
* @file RoboHeartTimer.cpp
*
* Arduino library for the RoboHeart.
*
*/
#include "RoboHeartTimer.h"
#define FILE_IDENTIFIER \
"TIMER" // Define identifier before including DebuggerMsgs.h
#include "DebuggerMsgs.h"
PeriodicTimer::PeriodicTimer(void (*callback)(void),
uint64_t timerPeriodMicroSec)
: timer(timerBegin(1000000)) {
timerAttachInterrupt(timer, callback);
setTimePeriod(timerPeriodMicroSec);
stop();
}
PeriodicTimer::PeriodicTimer(void (*callback)(void),
uint64_t timerPeriodMicroSec, Stream& debug)
: timer(timerBegin(1000000)), _debug(&debug) {
timerAttachInterrupt(timer, callback);
setTimePeriod(timerPeriodMicroSec);
stop();
}
void PeriodicTimer::setTimePeriod(uint64_t timerPeriodMicroSec) {
timerStop(timer);
timerAlarm(timer, timerPeriodMicroSec, true, 0);
timerRestart(timer);
timerStart(timer);
}
void PeriodicTimer::start() {
timerStart(timer);
}
void PeriodicTimer::stop() {
timerStop(timer);
timerRestart(timer);
}