PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erfassen eines ungewöhnlichen RS232 Stroms



Crashmichl
26.07.2007, 01:02
Hallo,

ich muss für ein Industrieprojekt einen Datenstrom von einem Steuergerät mit einem µC erfassen und diesen bearbeitet wieder ausgeben.
Spezifiziert ist der Datenstrom nach RS232 mit 19200baud usw, allerdings hat sich nach einem Telefonat mit dem Hersteller das ganze erschwert, da der Datenstrom binär und nicht als ASCII vorliegt.
Sprich, mit der Geschwindigkeit von 19200 baud bekomme ich high oder low-Bits, die ich erfassen muss (in 5 Byte pro Zeile) und dann umwandeln muss. Hat einer sowas schon mal gemacht mit Bascom oder irgendeinen Hinweis darauf für mich?

Danke

Michael

PicNick
26.07.2007, 06:59
Du meinst, du sollst "0"-er und "1"-er auf den Schirm schreiben ?

Das hätte aber nix mit der UART zu tun, die ist immer und sowieso ein binärer Datenstrom.

ASCII ist nur eine Vereinbarung, was die binären Bits BEDEUTEN.

nikolaus10
26.07.2007, 08:22
Hallo
Das Testen ist recht einfach.
Das koennen die meisten Terminal Programme.
Einfach von Ascii Darstellung auf Hex umstellen.

Der MC verarbeitet sowie so nur Hex und stellt das wahlweise als ASCII da.
Zu der Baudrate must du aber noch Anzahl der Start/Stoppbits und Parity wissen.
Oder ist es gar keine asynchone Uebertragung sondern synchron?
MFG

Crashmichl
26.07.2007, 09:41
Hallo,

danke erst mal.
Hyperterminal von Windows kanns nicht, hab jetzt eines gefunden, dass ich mal probieren werde. Parität und Start/Stoppbits habe ich.
Die andere Frage, von der ich keine Ahnung habe, ist, wie ich das ganze jetzt auf dem µC realisieren kann. Sprich, dass der Datenstrom als 0 und 1 in einer Variablen auslesbar ist.

Danke

Michl

PicNick
26.07.2007, 10:03
Eine möglichkeit:

print bin(bytevar)

Crashmichl
26.07.2007, 17:15
Servus,

sollte also mit
input bin(bytevar)
Im ganzen bekomme ich immer 5 Bytes in Folge, deklariere demnach am besten 5 verschiedene Variablen mit Byte und schreibe die Werte dementsprechend in die Variablen rein.
Theoretisch sollte es ja dann auch möglich sein, die binären Codes direkt in eine Ziffer (0-255) zu übersetzen sein?

Gruß

Michl