www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik R8C: über Hterm und UART0 LED anschalten


Autor: Michael T. (michelback)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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_Codebe...

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!

Autor: Michael X. (Firma: vyuxc) (der-michl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da fehlt die komplette initialisierung des UARTs. Du hast den Port 2.0 
als IO zugewiesen. Das reicht bei weitem nicht. Zieh dir bei Renesas die 
Beispiele runter, da gibts genug Code zum ausprobieren.

Autor: Michael T. (michelback)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich habe jetzt das Programm mikrocontroller.net eingebunden

Kenne ich, das ist gut!

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutze ich fast täglich ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.