Zitat Zitat von oderlachs Beitrag anzeigen
Leider will der XC8 Compiler nichts mit uint8_t zu tun haben.
Das hat mit XC8 nichts zu tun. Kein C-Compiler kennt das, auch wenn man den GCC für einen PC benutzt. Er kennt nur char und int. Um dem Compiler die modernen Bezeichnungen der Datentypen näher zu bringen, muß stdint.h includiert werden. Kipp einfach mal uint8_t in Google. Wenn ich ein ähnliches Problem habe, mach ich das so. Auch wenn ich eine Fehlermeldung nicht wirklich verstehe, ist der erste Versuch sie einfach in Google zu pasten.

In MPLABX muß man das noch nichtmal wirklich schreiben. Einfach "#in" und schon bietet es "#include" an. Dann "<" und schon bekommt man alle Systemincludes angeboten. Mit "std" hat man dann die Standardincludes wie stdio.h, stdbool.h oder auch stdint.h in der Auswahl

Es ist das Prinzip von C, daß der Compiler selbst wenig weiß und kann, außer zu compilieren. Das meiste, das er zum Compilieren braucht, kommt aus Headerfiles, so auch die internen Register des jeweiligen Chips (xc.h plus die Projekteinstellung des Prozessors). Und was das Programm zum funktionieren braucht, kommt aus Libraries, zu allererst aus der libc. Und auch die kennt der Compiler nicht, wenn man sie ihm nicht z.B. stdio.h oder string.h bekannt macht.

MfG Klebwax

P.S. "gewohnter C-Programmcode" ist ein etwas problematischer Begriff. Insbesondere für kleine µC gab und gibt es Compiler, die sich nicht vollständig an die C Standards halten. XC8, ehemals HighTech, wird da gerade aufgefrischt.