Forum: Mikrocontroller und Digitale Elektronik Funktionspointer uint32_t Parameter übergeben


von Leo (Gast)


Lesenswert?

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);

von STK500-Besitzer (Gast)


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);

von EAF (Gast)


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
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.