Portzugriff M16C/62 (M30624FGPGP)

OP #780708
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
Persönliche Seite #780803
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.