Funktionspointer uint32_t Parameter übergeben

Gast #7350543
Lesenswert?

Leo schrieb:

Hallo,

in einer Mikrocontroller Applikation wird ein Funktionspointer benötigt. Dieser soll quasi Daten weiterreichen.

Wie kann ich zum Beispiel einen uint32_t als Parameter übergeben?

1
   void(*FuncPointer)(uint32_t data);
1
   FuncPointer = FunktionDieUint32_tAlsParameterWill;
2
   FuncPointer(data);
Gast #7350591
Lesenswert?

Leo schrieb:

Mikrocontroller

Da Arduinos auch wohl µC sind, hier ein Test aus meiner Wühlkiste:

1
#include <Streaming.h> // die Lib findest du selber ;-)
2
Print &cout = Serial; // cout Emulation für "Arme"
3

4
using FuncPtr = void (*)(int);
5

6
FuncPtr callback;
7

8

9
void testfunc(int value)
10
{
11
  cout << F("testfunc: ") << value << endl;
12
}
13

14

15
void setup() 
16
{
17
  Serial.begin(9600);
18
  cout << F("start") << endl;
19

20
  if(callback) callback(4711);
21
  callback = testfunc;
22
  if(callback) callback(4712);
23
  callback = [](int value){cout << F("Lambda: ") << value << endl;};
24
  if(callback) callback(4713);
25
  callback = nullptr;
26
  if(callback) callback(4714);
27

28
  cout << F("ende") << endl;
29
}
30

31
void loop() 
32
{
33

34
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren