Forum: Compiler & IDEs Pointer auf Funktion in einem Struct ablegen


von André W. (sefiroth)


Lesenswert?

Hallo,

ich bin leider gerade völlig im Zeigerwirrwarr gefangen - vielleicht 
kann mir wer da raushelfen ;-)

Ich möchte in einer Struktur einen Zeiger auf eine Funktion ablegen und 
später dann bei Auslösung einer ISR die Funktion anhand des abgelegten 
Zeigers aufrufen. Ich brauche das für eine recht komplexe Ansteuerung 
des CAN-Controllers im AT90CAN128.

Als Beispiel:
1
typedef struct
2
{
3
   // Hier Zeiger auf Funktion speichern
4
} Strukur_t;
5
6
Struktur_t MeineStruktur;
7
8
// Funktion die in der ISR aufgerufen werden muss
9
void Action (void)
10
{
11
   // ...   
12
}
13
14
// Interrupt Service Routine
15
ISR (CANIT_vect)
16
{
17
   // Hier die Funktion anhand des in der Struktur "MeineStruktur" abgelegten Zeigers aufrufen
18
}
19
20
int main (void)
21
{
22
   // Zeiger auf "Action()" in "MeineStruktur.Zeiger" ablegen
23
}

Sorry, dass es so ein "bitte programmiert mir das mal" Beitrag ist. Mit 
einfachen Zeigern kann ich umgehen, aber ich habe leider Null Erfahrung 
mit Zeigern auf Funktionen und konnte bisher auch noch nichts finden, 
was mir wirklich bei meinem Problem weitergeholfen hat. Ich bekomme den 
Funktionszeiger einfach nicht in die Struktur und in der ISR klappt der 
Aufruf nicht. Ich könnte hier schreiben,w as ich alles probiert habe, 
aber ich denke das verkompliziert die Sache nur noch mehr...

Bin sehr dankbar, wenn mir jemand da Unterstützung geben kann!

von Simon K. (simon) Benutzerseite


Lesenswert?

André Wippich wrote:
> Sorry, dass es so ein "bitte programmiert mir das mal" Beitrag ist. Mit
> einfachen Zeigern kann ich umgehen, aber ich habe leider Null Erfahrung
> mit Zeigern auf Funktionen und konnte bisher auch noch nichts finden,
> was mir wirklich bei meinem Problem weitergeholfen hat.

Echt nicht?
http://www.google.de/search?q=function+pointer

Alternativ gibts dazu auch schon diverse Threads in diesem Forum.

von Karl H. (kbuchegg)


Lesenswert?


von André W. (sefiroth)


Lesenswert?

Lol, das hatte ich echt nicht gefunden. schäm

Danke Euch für die Links, jetzt bekomm ich's auch hin ;-)

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.