Gast
#179911
Hallo, ich habe zwei Fragen zum Microchip C30 Compiler für dsPICs. Ich hoffe, dieser Beitrag ist hier nicht off-topic, schließlich ist der C30 ja auch eine GCC Portierung. Folgendes Problem: #include "p30f6014.h" #define BitIsSet(Register, BitNo) ((Register & (1<<BitNo))>>BitNo) ... if(BitIsSet(U1STA, UTXBF))... Dieser Code verursacht einen Fehler: "`UTXBF' undeclared (first use in this function)". Ein Blick in die p30f6014.h offenbart dann auch, daß offensichtlich keine Bit Definitionen wie "#define UTXBF 9" enthalten sind. Was in der Datei steht, ist folgendes: extern volatile unsigned int U1STA __attribute__((_near_)); extern volatile UxSTABITS U1STAbits __attribute__((_near_)); typedef struct tagUxSTABITS { unsigned URXDA :1; unsigned OERR :1; unsigned FERR :1; unsigned PERR :1; unsigned RIDLE :1; unsigned ADDEN :1; unsigned URXISEL:2; unsigned TRMT :1; unsigned UTXBF :1; unsigned UTXEN :1; unsigned UTXBRK :1; unsigned :3; unsigned UTXISEL:1; } UxSTABITS; Damit kann ich nichts anfangen. Ich kann nicht so recht glauben, daß die gew. Bit Definitionen nicht vorhanden sein sollen. Muß ich das wirklich selbst erledigen? Meine zweite Frage bezieht sich auf spezielle Befehle, die der dsPIC bereitstellt. Ist es richtig, daß der C30 Befehle wie "repeat" und "do" grundsätzlich nicht unterstützt? Oder gibt es doch einen Weg, den Compiler dazu zu überreden? Vielleicht hat ja jemand schon mit dem C30 gearbeitet und kann mir helfen. Ich benutze übrigens die Version 1.20. Vielen Dank. Gruß Thorsten