R8C: über Hterm und UART0 LED anschalten

OP #1493190
Lesenswert?

Halló zusammen,
ich scheitere gerade an der UART kommunikation mit dem R8C und HTerm. 
Ziel ist, dass ich über ein festgelegtes Zeichen, das ich über UART zum 
µC schicke eine LED anschalte.
Ausschnitt aus dem code (UART_init wurde vorher schon implementiert):


unsigned char rcv_buf;
unsigned short receive_data;
pd2_0=1;
p2_0=0;

while (1){

     if(ri_u0c1 == 1){                       //data in U0RB register?
            receive_data = u0rb;             //receive data
            rcv_buf = (unsigned char)receive_data;

            if(rcv_buf == 0x2B){        //wenn + gesendet dann leuchte
               p2_0=1;
            }


Leider tut sich gar nichts und ich weiß nicht woran es liegt. Testweise 
hatte ich auch eine andere LED angeschaltet, ob der µC resettet. Tut er 
aber nicht. Da ich noch recht frisch bin in Sachen µC-Programmierung, 
weiß ich auch nicht, ob das überhaupt so funktionieren kann. Ich habe 
mir das lediglich aus einigen Application notes rausgesucht.

In Hterm hatte ich bei "Type" ASC ausgewählt und "++" eingegeben, danach 
Enter gedrückt. Bei "send on enter" habe ich es mit "none" probiert.
Ich möchte einfach nur ein beispielcode, mit dem ich arbeiten kann. Ich 
weiß leider nicht mehr weiter. Wenn mir jemand helfen kann wäre das 
super.
Grüße und Danke,
Michael
#1493198
Lesenswert?

Michael T. schrieb:

>             receive_data = u0rb;             //receive data
>             rcv_buf = (unsigned char)receive_data;
>
>             if(rcv_buf == 0x2B){        //wenn + gesendet dann leuchte

"wenn + gesendet"
Dann schreibs auch so!
              if(rcv_buf == '+'){


Immer diese ASCII Code Fetischisten! Schreib doch Zeichen im Klartext 
hin, dann kann auch ein Blinder mit Krückstock auf 3 Meter Entfernung 
ertasten, was diese Abfrage bedeuten soll.

> Leider tut sich gar nichts und ich weiß nicht woran es liegt.

Es ist IMMER eine extrem gute Idee, sich das Zeichen, welches empfangen 
wurde, sofort zurückschicken zu lassen, damit es am Terminal angezeigt 
wird. Auf die Art sieht man dann als Tester, ob das Zeichen (falls 
überhaupt) gut angekommen ist, oder ob etwas damit auf dem 
Übertragungsweg passiert ist oder ob es das Terminal zb zurückhält oder 
dergleichen.
Persönliche Seite #1493240
Lesenswert?

Hier ist ein einfaches, komplettes UART-Beispiel für den R5F21134FP 
(R8C/13) = Erstes R8C-Board von Elektor/Glyn:

http://www.mikrocontroller.net/articles/R8C_Codebeispiele#Serielle_Daten.C3.BCbertragung_.28Polling-Verfahren.29

Das Programm ist ein "leicht abgewandeltes" Echo für empfangene Daten 
und LED an P10 an/aus.

Du scheinst aber einen anderen R8C einzusetzen, wenn du einen Pin P20 
hast. Also Vorsicht beim 1:1 übernehmen des Beispiels!
OP #1494599
Lesenswert?

Hallo,

vielen Dank für die Infos, ich habe jetzt das Programm 
mikrocontroller.net eingebunden und entsprechend angepasst (Baudrate, 
pins). Ich verwende den R8C/22, bei ihm ist es nicht nötig zwei 8bit 
register zu lesen, sondern nur ein 16bit register. Funktioniert aber 
einwandfrei, vielen Dank an alle.

Grüße,
Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren