Auf der roboternetz Seite gibt es aber auch eine Empfangsfunktion. Die Auswertung der Zeichen musst du dir selbst schreiben.
In der Datenrichtung gibt es keinen Unterschied, das musst du dir selbst definieren.
Hallo
Ich habe das stk500 und ATmega8 mit 8 MHz,
Ich habe bei einem UART Programm das Problem das ich bei diesem Programm.: http://www.avrbuch.de/index.php?view...ntent&Itemid=3
Daten empfangen kann Ader keine senden z.B "version",
Ich verwende das Terminal.: http://www.compuphase.com/software_termite.htm
Das Programm geht.: https://www.roboternetz.de/wissen/in...lo.2C_world.29
Aber da sendet der µC nur,
wie nennt man das eigentlich wen der PC sendet oder der µC sendet gibt’s da einen Unterschied?
Mit freundlichen Grüßen Ferdinand.
habe schreiben erst heute gelernt.
bin legasteniger.
by Ferdinand.
Auf der roboternetz Seite gibt es aber auch eine Empfangsfunktion. Die Auswertung der Zeichen musst du dir selbst schreiben.
In der Datenrichtung gibt es keinen Unterschied, das musst du dir selbst definieren.
Hi,
Ich hab’s jetzt getestet und das Funktioniert.
https://www.roboternetz.de/wissen/in...statur-Echo.29
also die Hardware tut.
aber das Bsp. geht trotzdem nicht.
Mit freundlichen Grüssen Ferdinand Haug.
habe schreiben erst heute gelernt.
bin legasteniger.
by Ferdinand.
Hallo,
stell mal in deinem Terminalprogramm in dem Fenster "Serial Port settings" unter "Transmittet test" "Append CR" ein. Das Programm ließt solange Zeichen ein, bis es die 13, also ein CR, empfängt. Wenn dein Terminalprogramm das nicht mitschickt, klappt das nicht.
Gruß
Jens
Hi
ich weis nicht genau was dabei ableuftaber es tut,
könndest du mir das mit dem RC noch mal genauer erkleren.
THX
by Ferdinand
habe schreiben erst heute gelernt.
bin legasteniger.
by Ferdinand.
Hallo,
hier erst einmal der wichtige Codeschnipsel aus deinem Programm mit ein paar eingefügten Kommentaren.
Jetzt zu Enter/CR/13. Wenn du die Entertaste drückst, ist das auch nur ein Zeichen, wie zum Beispiel das A. Jedes Zeichen hat einen ASCII-Code. Der ist bei dem A 65, für Enter 13. Jetzt ist es ja möglich das A als A darzustellen. Das geht bei Enter nicht, darum hat man sich darauf geeinigt, dass Enter als CR dargestellt wird. CR kommt noch von den alten Druckern und bedeutet carrige return, Wagenrücklauf.Code:while (1) //Schleife bis ein Enter/CR/13 empfangen wird { c = uart_getchar(); //Zeichen abholen if (c != -1) //Ist ein Zeichen da? { if (c == 13) //Is das Zeichen Enter/CR/13 { /* Ende der Zeile erreicht, also String abschließen */ str[index] = 0; /* Funktion beenden */ return; // hier wird die Schleife verlassen } else /* Normales Zeichen, anhängen an die Zeichenkette */ { str[index] = c; index++; } } }
Wenn du bisher in deinem Terminal nach der Zeichenkette Enter gedrückt hast, hat das T-Programm die Zeichenkette abgeschickt. Aber das Enter für sich behalten! Dadurch ist das Programm auf dem Controller nie aus der Schleife gekommen. Wenn du jetzt dem T-Programm gesagt hast, schicke jeder Zeichenkette ein CR nach, schickt es das Enter mit und die Schleife kann verlassen werden.
Gruß
Jens
Lesezeichen