-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathloopThrottle.cpp
More file actions
50 lines (43 loc) · 1.04 KB
/
loopThrottle.cpp
File metadata and controls
50 lines (43 loc) · 1.04 KB
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
#include "debug.h"
#include "loopThrottle.h"
loopThrottle::loopThrottle() {
}
int loopThrottle::determine(unsigned long deltaElapsed, int sampleRate) {
unsigned long delta = deltaElapsed + _delta;
int samples = 1000 / sampleRate;
// #ifdef DEBUG
// if (_countDebugI % 100000 == 0) {
// debug(F(" "));
// debug(F("deltaElapsed"), deltaElapsed);
// debug(F("_delta"), _delta);
// debug(F("delta"), delta);
// debug(F("sampleRate"), sampleRate);
// debug(F("samples"), ((float)sampleRate / 60));
// debug(F("samples"), samples);
// debug(F("(delta <= samples)"), (delta <= samples));
// _countDebugI = 0;
// }
// _countDebugI++;
// #endif
if (delta <= samples) {
_countDebug++;
_delta = delta;
return 0;
}
// #ifdef DEBUG
// debug(F("...process"));
// #endif
_countDebug = 0;
_delta = 0;
return delta;
};
void loopThrottle::reset() {
// #ifdef DEBUG
// _countDebugI = 0;
// #endif
_countDebug = 0;
_delta = 0;
};
bool loopThrottle::signal() {
return _countDebug % 100 == 0;
};