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
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.
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!
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.
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
> ich habe jetzt das Programm mikrocontroller.net eingebunden
Kenne ich, das ist gut!
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.