Forum: PC Hard- und Software Terminal CR LF einfügen


von Flo (Gast)


Lesenswert?

Hallo Community,

ich möchte von meinem Mikrocontroller aus Messdaten an ein Terminal 
senden. Nach 20x Bytes soll das Terminal Programm in eine neue Zeile 
springen.

Jetzt habe ich mir gedacht, einfach ein CR LF (0x0D 0x0A) an die 
Messdaten dran zuhängen. Das von mir verwendete Terminal Programm 
"RealTerm" macht das leider nicht.

Frage 1 :
Weiß jemand von euch, ob und wie das möglich ist? Auch vielleicht mit 
einem anderen Terminal Programm.

Frage 2 :
Kennt jemand von euch ein Terminal Programm, mit welchem man Daten über 
die serielle Schnittstelle aufzeichen (in eine Datei) und die 
Datenbreite von 16-Bit dabei einstellen kann?

Vielen Dank schon einmal im Voraus.

Gruß Flo

von Jim M. (turboj)


Lesenswert?

Wenn das Termninal 0x0D 0x0A nich in eine neue Zeile springt dann hat 
man auf der µC Seite was flasch gemacht.

In C ist das
1
printf("\r\n");

von Hugo H. (hugo_hu)


Angehängte Dateien:

Lesenswert?

Flo schrieb:
> Das von mir verwendete Terminal Programm
> "RealTerm" macht das leider nicht.

von Karl B. (gustav)


Lesenswert?

Zu 2: Teraterm
Zu 3:
Mit "normalem" UART wird's nicht so leicht:
Beitrag "Problem: 16 Bit Variable über UART zu empfangen"

ciao
gustav

von Andras H. (kyrk)


Lesenswert?

Flo schrieb:
> Kennt jemand von euch ein Terminal Programm, mit welchem man Daten über
> die serielle Schnittstelle aufzeichen (in eine Datei) und die
> Datenbreite von 16-Bit dabei einstellen kann?

Ich glaube nicht, dass das mit einem PC möglich ist. Man kann glaube ich 
7 oder 8 Bit einstellen. 16 Bit habe ich noch nie als Option gesehen. 
Auf höhere ebene könnte man 2 Bytes zusammenheften und so 16 Bit machen. 
Das Problem ist, wenn 1 Byte irgendwie verloren geht, dann werden die 
falschen Bytes immer zusammengeheftet. Und eine Synchronisation ist 
nicht definiert.
Auf einem uC würde das natürlich gehen, aber auch mit Bitbang weil viele 
USART module max 8 bit können. Bestimmt gibt es ausnahmen.

von Flo (Gast)


Lesenswert?

Hallo,

ich meinte auch nicht, dass man die Datenbreite des UART auf 16-Bit 
setzen kann, sondern dass das Terminal 2x Bytes zu 16-Bit zusammenfasst 
und anzeigt/speichert.

Bei RealTerm kann man unter dem Tab "Display" uint16 einstellen. Damit 
werden die Daten in diesem Format visualisiert. Beim Aufzeichnen mit 
"Capture" verwendet RealTerm jedoch wieder 8-Bit HEX.

Gruß Flo

von Rolf M. (rmagnus)


Lesenswert?

Flo schrieb:
> Beim Aufzeichnen mit "Capture" verwendet RealTerm jedoch wieder 8-Bit
> HEX.

Das sollte sich doch leicht mit ein paar Zeilen Python oder so in das 
gewünschte Format konvertieren lassen.

von Georg (Gast)


Lesenswert?

Flo schrieb:
> Kennt jemand von euch ein Terminal Programm, mit welchem man Daten über
> die serielle Schnittstelle aufzeichen (in eine Datei) und die
> Datenbreite von 16-Bit dabei einstellen kann?

Dazu müsste irgendwie gekennzeichnet sein, welche 2 Bytes einen 
16-Bit-Wert bilden. Wenn der TO das offensichtlich nicht vorgesehen hat 
(beim Sender!!), dann ist das ganze Konzept unbrauchbarer Blödsinn, das 
lässt sich mit keinem denkbaren Empfangsprogramm beheben, da braucht man 
garnicht lange nachdenken ob Controller oder PC und welche Sprache.

Georg

von Dirk B. (dirkb2)


Lesenswert?

Hterm kennt „Newline after … Character“

Ist das jetzt Binary Data oder Hexdarstellung?
Was soll in der Datei stehen?

von Peter D. (peda)


Lesenswert?

Flo schrieb:
> Frage 2 :
> Kennt jemand von euch ein Terminal Programm, mit welchem man Daten über
> die serielle Schnittstelle aufzeichen (in eine Datei) und die
> Datenbreite von 16-Bit dabei einstellen kann?

Nein.
MCs können max 9Bit, die PC-UART max 8Bit Format.
Will man mehr übertragen, braucht es ein Protokoll, mit dem der 
Empfänger die Daten wieder richtig zusammen setzen kann.
Recht einfach ist ein ASCII-Protokoll, 16Bit werden per printf als 4 
Hex-Digits oder 1-5 Dezimaldigits übertragen. Danach kommt ein 
Trennzeichen zum nächsten Wert, z.B Leerzeichen oder Komma.

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
Noch kein Account? Hier anmelden.