Forum: Mikrocontroller und Digitale Elektronik Hilfe mit RS232 Codierung


von Sebastian Sobierajski (Gast)


Lesenswert?

Hallo Zusammen,

Ich hab hier auf meinen Motorola ein kleines Problem.
Ich hab mir ein zusätzliche serielle Schnittstelle gebaut, über die ich
Daten an ein PC sende. Ich sende zwar zweichen .....aber das
Hyperterminal zeigt nicht die gewünschten Zeichen an.... Ich sende z.B
ein unsigned char 0 und empfange ein komisches Zeichen...(a mit Punkt
oben drauf)
Wenn ich ein 155 dann empfange ich ein LEERZEICHEN.....
Kann es sein das ich mich nicht an der ASCII Tabelle orientieren
darf....wenn ich sage sende 0x41 bzw. 61 Dezimal dann zeig mir
Hyperterminal ASCII 254 = þ an .....
Ich benutze ein Motorola 9s12ne64
Die RS232 wird mit 9600 Baud betrieben.
- 8 Datenbits,
- 1 Start- und Stopbit
- keine Parity Prüfung

Gruss
Sebastian

von Jens123 (Gast)


Lesenswert?

ich gehe mal davon aus, dass du sender, empaaenger gleich eingestellt
hast?

>>Die RS232 wird mit 9600 Baud betrieben.
>>- 8 Datenbits,
>>- 1 Start- und Stopbit
>>- keine Parity Prüfung

Mit dem Hyperterminal stand ich auch auf kriegsfuss hab dann einen
anderen genommen, wo man direkt alles einstellen kann

Nennt sich Terminal v 1.9b von Br@y++

ich hab damit bisher nur gute erfahrungen gemacht

aber Codieren musste ich bisher nichts.

kommen die zeichen denn immer gleich an

sprich char 0 ist immer ein komisches Zeichen...(a mit Punkt
oben drauf)??

Gruss Jens

von Sebastian Sobierajski (Gast)


Lesenswert?

Hallo Jens,

Ich hab es ja mit der 65 versucht.
Einmal direkt 65 dann mal als hex 0x41 und auch mal als 'A' es kommt
aber nicht das gewünschte Zeichen auf dem Rechner an.

Ich versuche jetzt mal das Progi
Nochmal Danke.

von Rufus T. Firefly (Gast)


Lesenswert?

Das hier geschilderte Problem hat nichts mit einer Zeichencodierung zu
tun - auch ein anderes Terminalprogramm löst es nicht.

Hyperterminal ist unbestritten ziemlicher Mist, aber Zeichen auf einer
seriellen Schnittstelle empfangen und korrekt anzeigen, das kann es.

Entweder ist die Baudrate ziemlich falsch (ich weiß nicht, was ein
Motorola 9s12ne64 sein mag und wie es den Baudratentakt erzeugt), oder
aber die Wortlänge ist an einem der beiden Enden (PC oder 9s12ne64)
sehr falsch konfiguriert.
(5 Bit statt 8 Bit).

Bei vielen µCs wird die Baudrate der seriellen Schnittstelle durch
Teilung des Prozessortakts erzeugt - das gibt, je nach Taktfrequenz,
mehr oder weniger ausgeprägte Abweichungen.
Daher empfiehlt es sich, den Controller mit einem baudratengerechten
Takt zu betreiben.

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.