Forum: Mikrocontroller und Digitale Elektronik µVision Pointer auf Funktionen


von Jasson J. (jasson)


Lesenswert?

Hallo Forum,

ich versuche in µVision eine Funktion mittels eines Zeigers darauf 
aufzurufen. Hintergrund ist eine dirty art, um aus einer ISR die Methode 
eines Objektes zu triggern. In der Main (in C) gibt es eine Funktion, 
welche lediglich die xxxObjekt.Methode_XY(); ausführt. Jetzt wollte ich 
einen Zeiger auf die C Funktion in die ISR schmuggeln. Aber das scheint 
nicht zu gehen weil der Zeiger ja volatile sein muss und der Compiler 
sagt
"cannot be assigned to an entity of type "volatile void (*)()"

Gibt es irgendeine Lösung für mein Problem, die nicht Betriebssystem 
heißt und es ermöglicht aus der ISR die Methode eines Objektes zu 
triggern?

viele Grüße,
Jasson

von Peter II (Gast)


Lesenswert?

Jasson JFK schrieb:
> Aber das scheint
> nicht zu gehen weil der Zeiger ja volatile sein muss

was sagt das? die ISR braucht kein volatile. Der zugriff aus der Main 
ist bei variablen das Problem nicht die ISR.

Zeigt doch mal etwas code.

von Jasson J. (jasson)


Lesenswert?

Hallo,

Danke für die Antwort Peter! Ich hatte es jetzt so gelöst, dass ich die 
"Hilfsfunktion"-Funktion in der Main auch volatile gemacht habe und 
jetzt läuft es erstmal. Aber ich werde deinen Vorschlag auch noch 
ausprobieren.

Firma dankt :-)

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.