Forum: Mikrocontroller und Digitale Elektronik Arduino Funktion eines Buttons dynamisch ändern


von Markus N. (roboscan)


Lesenswert?

Hi zusammen. Ich stehe seit Tagen auf dem Schlauch bei der folgenden 
Anforderung:
Ich programmiere gerade ein kleines Hardwaretool mit Menüführung.
Dabei lasse ich die Rotary-Encoder und Buttons bisher immer mit einem 
Switch Befehl (entsprechend in welchem Menüpunkt ich mich befinde) 
auswerten.
Das ganze wird aber auf diese Weise etwas undurchsichtig im Code.
Meine Frage ist deshalb, gibt es eine Möglichkeit wie ich z.B. eine 
Funktion die ich auf die Flanke eines Buttons gelegt habe (die also 
gecalled wird wenn eine Flanke erkannt wurde) dynamisch ändern lasse. 
Ich denke da an so eine Art Pointer aber nur für eine Funktion und nicht 
für eine Variable. Ist das Möglich und hat jemand einen Tip wonach ich 
suchen kann?
Lieben dank schon mal.

von Achim M. (minifloat)


Lesenswert?

Markus N. schrieb:
> Ich denke da an so eine Art Pointer aber nur für eine Funktion

Genau das:
https://www.geeksforgeeks.org/function-pointer-in-c/

Wenn du das Menü sowieso als (verkettete) Liste eines Strukturdatentyps 
(oder für C++ eben eine Klasse) hältst, kannst du den Funktionspointer 
auch in diesem Strukturdatentyp unterbringen.

mfg mf

von Stefan F. (Gast)


Lesenswert?

Ja das geht, man kann auf Funktionen zeigen und diese indirekt via 
Pointer aufrufen.

In dieser Diskussion ist ein schönes Beispiel:
https://forum.arduino.cc/t/pointers-to-function/58518/3

von Markus N. (roboscan)


Lesenswert?

Ich danke euch, vor allem für die wahnsinnig schnelle Antwort.
Das hilft mir sehr weiter!

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.