Leo schrieb:
> Wie müsste ich den Pointer zurechtcasten ?
Der Compiler schreibt es dir doch sogar hin, wie der Datentyp aussehen
muss
Error[Pe167]: argument of type "void (*)(obSTM32UART *)" is incompatible
with parameter of type "void (*)(void *)
Du hast einen
void (*)(obSTM32UART *)
und es sollte sein ein
void (*)(void *)
Ergo:
1 | pInst->m_pTimer->pM->SetTimerInterrupt(pInst->m_pTimer,0,(void (*)(void *))obSTM32UART_FrameEnd,pInst,0,0);
|
mach dir am besten einen typedef dafür, das wirst du wahrscheinlich noch
öfter brauchen.
1 | typedef void (* voidPtrFnct)(void *);
|
2 |
|
3 | ....
|
4 |
|
5 | pInst->m_pTimer->pM->SetTimerInterrupt(pInst->m_pTimer,0,(voidPtrFnct)obSTM32UART_FrameEnd,pInst,0,0);
|
> Ich habe jetzt schon alles erdenkliche ausprobiert.
Das einzig hilfreiche wahrscheinlich nicht: Das Studium von Literatur
und dort wiederrum das Kapitel, in dem Funktionspointer besprochen
werden.