Dido schrieb:
> Das Programm verstehe ich soweit, dass Strings gesammelt
genauer gesagt: 1 String (in Worten: einer)
> und in einem
> Puffer gesammelt werden, bis eine max. Anzahl von Strings erreicht bzw.
> das Terminatorzeichen eingegeben wird.
> Was mir aber noch unklar ist:
Was dir unklar ist, das ist der Unterschied zwischen einem einzelnen
Zeichen und einem String. Ein String ist kein Zeichen. Ein String
besteht aus mehreren Zeichen.
Ein Zeichen, das ist zb 'A' oder 'B' oder 'Z' oder auch '0' oder '/'.
Drückst du im Terminal auf eine Taste, dann schickt das Terminal ein
einzelnes Zeichen auf die Reise.
Erst die Zusammensetzung mehrerer Zeichen nennt man dann einen String.
"Hello World" ist ein String. Oder auch "01234" ist ein String. Oder
"08/15" ist ein String. Bestehend aus mehreren Zeichen.
> 1. Welche Variable beinhaltet die konkreten, über die Tastatur
> eingegebenen Werte? Ich vermute es ist nextChar?!
Nein.
Es ist ein Stufenprozess.
Jedes Zeichwn wird einzeln übertragen. Zunächst landet das Zeichen in
nextChar. Von dort wird es dann an den String in uart_stringlength
angehängt. (Wer hat sich denn den Variablennamen ausgedacht? Ich wars
nicht, auch wenn ich den Code als meinen wiedererkenne)
> 2. Wie kann ich mir diesen UDR-Puffer vorstellen? Werden dort sämtliche
> Zeichen gesammelt oder nur einzelne Strings gespeichert?
Dort wird 1 Zeichen gespeichert. Nämlich das nächste Zeichen, welches
über die UART reinkommt.
> Ist es in 2 Register unterteilt (also TX und Receive)? Wenn ja, wie
> unterscheidet man beim Zugriff die beiden Register?
Ganz einfach: das eine wird gelesen, das andere wird geschrieben.
> 3. Wie modifiziere ich das Programm, dass es die gwünschten Funktionen
> erfüllt? Ich habe ja ein schlechtes Gewissen
Das solltest du auch haben. Aber weniger deswegen, sondern weil du kein
C Buch hast, in dem du die Grundlagen der STringverarbeitung gelesen,
geübt und gelernt hättest.