Hallo wahrscheinlich bin ich ma wieder der 237. der diese Frage stellt, aber eine (nicht sehr ausführliche) Suche ergab nichts wirklich hilfreiches. ich definiere in meinem Quellcode die Funktion int8_t spiPutByte(uint8_t byte) { // blub blub } und möchte die mit stdio verwenden. diese zeile: fdevopen(spiPutByte, NULL, 0); funktioniert auch bringt aber die folgende Warnung: main.c:24: warning: passing arg 1 of `fdevopen' from incompatible pointer type warum?
Wie ist denn der Prototyp von fdevopen? Gruß, Patrick...
extern FILE *fdevopen(int (*put)(char), int (*get)(void), int opts); D. h. der Rückkehrwert der Funktion muß `int' sein (nicht int8_t, auch nicht uint8_t, int16_t oder sowas, einfach `int'), der Parameter ist `char' (was übrigens nicht unsigned ist).
aaah danke funktioniert. diese **** pointer brechen mir immer wieder das genick wobei ich an dieser stelle auch von selbst hätte drauf kommen können
...zumal in der Doku oben ein Beispiel für eine Ausgaberoutine drin ist. ;-)
Hi Leute, das Thema ist zwar schon ziemlich alt aber ich habe dieses Problem jetzt auch. Ich möchte per Uart was versenden und nutze die fdevopen-Fukntion. Mein AVR-Studio gibt die gleiche Fehlermeldung aus wie bei ape. Da ich ja per Uart senden möchte, brauche ich ja char, wie soll ich denn damit einen Integer zurückgeben?
Schau doch mal in der Doku nach, was der Rueckgabewert eigentlich macht. Das ist mit ziemlicher Sicherheit ein Code ob die Funktion funktioniert hat oder nicht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.