Hallo zusammen,
ich würde mir mit folgendem C-Code gerne einen Timer basteln:
1 | class Timer {
|
2 | unsigned long interval;
|
3 | unsigned long previousMillis;
|
4 |
|
5 | public:
|
6 | Timer(unsigned long inter, void cb()) {
|
7 | previousMillis = 0;
|
8 | interval = inter;
|
9 |
|
10 | }
|
11 | void Check() {
|
12 | unsigned long currentMillis = millis();
|
13 |
|
14 | if(currentMillis - previousMillis > interval) {
|
15 | previousMillis = currentMillis;
|
16 | Callback();
|
17 | }
|
18 | }
|
19 | };
|
20 |
|
21 | void testCB() {
|
22 | Serial.println("Trigger");
|
23 | }
|
24 |
|
25 | Timer timer1(1000, testCB);
|
26 |
|
27 | void setup() {
|
28 | Serial.begin(115200);
|
29 | }
|
30 |
|
31 | void loop() {
|
32 | timer1.Check();
|
33 | }
|
Bei der Initialisierung des Timers soll die Dauer in Millisekunden und
die auszuführende Callbackfunktion übergeben werden...
Und genau hier habe ich mein Problem.
Wie übergebe ich die Funktion (Name bzw. Zeiger der Callback) an die
Klasse bzw. die Member-Funktion Check(), so daß diese dann entsprechend
ausgeführt wird??
Zur Verdeutlichung:
void testCB() ist die auszuführende Callback-Funktion wenn der Timer
auslöst
Danke schon mal für eure Antworten und entschuldigt meine Unwissenheit
:-)
Gruß Andreas