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







Zitieren

Lesezeichen