Forum: Mikrocontroller und Digitale Elektronik Funktionszeiger - Mission Impossible?


von MOBA 2. (Gast)


Lesenswert?

Hallo,

irgendwie will das bei mir 0. Ich habe 2 Funktionen für 2 Protokolle.
Die sollen gewechselt werden, über einen Zeiger (keine if-Abfrage) im 
Interrupt. Hier habe ich alles getestet, nichts klappt, der meckert nur 
(AVR Studio 7, ATMega328P 
(https://www.mikrocontroller.net/articles/Funktionszeiger_in_C)


So war meine 1. Idee bevor ich anfing zu googlen:

void funct1(void) {...}
void funct2(void) {...}



void (*handle_protocoll) (void);

....

int main()...

if (protokoll1)   handle_protocoll = &funct1;
else     handle_protocoll = &funct2;

while(1)
{

}




Er meckert: Undefined reference von funct 1 und funct 2
Wenn ich hinter die FUnktionen () mache sagt er value required as unary 
& operation (gut macht sinn) und wenn ich das & weglasse meckert er das 
es keinen Rückgabewert gibt (macht ja auch Sinn).

Wie geht das?!?!

von Dr. Sommer (Gast)


Lesenswert?

"inline" und Funktionszeiger passt überhaupt nicht zusammen. Mach das 
mal weg.

von MOBA 2. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> "inline" und Funktionszeiger passt überhaupt nicht zusammen. Mach das
> mal weg.

Habe ich gerade in dem Moment auch gemerkt.... Jetzt geht es.

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.