Hallo. Ich ärgere mich nun schon etwas länger mit einem Problem herum und hoffe, dass ich hier vielleicht ein paar Anregungen zur Problemlösung bekomme. Also folgendes: Ich habe mir für den im Titel angegebenen Mikrocontroller den kostenlosen KPIT GNU C Compiler mit dem Renesas "High-Performance-Embedded-Workshop" installiert. Mittels Wizard habe ich die entprechend benötigten Header und C-Dateien erstellt und im großen und ganzen funktioniert auch alles. Nur eine Sache bekomme ich einfach nicht so hin wie es dokumentiert ist: Die Bytausgabe / -eingabe auf Ports. Lt. Doku muss ich, um bspw. ein Byte auf Port 0 zu legen folgendes tun: Datenrichtung des Ports setzen: pd0 = 0xFF; Gewünschtes Byte ausgeben: p0 = 0XFE; Möchte ich dies allerdings kompilieren, so spuckt der Compiler folgendes aus: "error: incompatible types in assignment" (mit der Zeilenangabe des eben geschriebenen). Setze ich die Bits einzeln, also z.B. pd0_0 = 1; p0_0 = 1; dann funktioniert es wunderbar. Nach langem herumprobieren habe ich herausgefunden, dass es teilweise klappt wenn ich schreibe pd0.byte = 0xFF; p0.byte = 0xFE; Dies ist aber nirgendwo dokomentiert und ich weiss nicht, ob es ebenfalls beim einlesen von Daten klappt, also unsigned char byte = p0.byte; Was mache ich hier nur falsch? Wieso kann ich die direkte Zuweisung nicht nutzen? Mit frdl. Grüßen, F. Koch
Welchen Typ haben denn pd0 und p0? Das sollte in einem Includefile (sfr62.h beim Renesas Compiler) stehen. Möglicherweise tritt dich nur der Effekt, dass pd0 und p0 falsch geschrieben sind. Gelegentlich (oft?) sind diese special function register als Makros mit #define angelegt und du brauchst die Grossschreibweise PD0 =...; P0 =...; Ich hätte selbst nachgesehen (http://www.kpitgnutools.com/), aber hier habe ich aufgegeben > Register now for FREE and get access to downloads and support.
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.