Anzeige auf Display

Gast #1581
Lesenswert?

Hallo,

Ich habe ein Programm geschrieben, welches über die RS232-Schnittstelle 
Zeichen einliest und sie dann auf dem LCD anzeigen soll.
Nun zu meiner Frage:
Einige Zeichen werden ordentlich angezeigt und bei Anderen kommt 
vorneweg irgendwelcher Schwachsinn. An was kann das liegen?Beim Empfang 
zum Hyperteminal sind sie alle ok.

Besten Dank im vorraus.

Grüße Simone
Gast #1582
Lesenswert?

Hallo Simone,

gib die empfangenen Zeichen doch einfach Hexadezimal aus, dann kannst Du 
sehen, welcher Zeichencode empfangen wurde und ob da irgentwelche Bits 
gekippt, oder dazu gekommen sind.

Stimmen denn alle Übertragungsparameter wie Framelänge 7, 8 oder 9 Bit, 
No-Even-Odd-Parity, 1-2 Stoppbit?

Tritt der Fehler auf, wenn mehrere aufeinanderfolgende "1" oder "0" in 
dem Zeichen vorkommen, dann läuft die Quarzfrequenz aus dem Ruder, oder 
der Vorteiler stimmt nicht.

Siegfried
Gast #1583
Lesenswert?

Hallo Siegfried,

vielen Dank. Ich muß aber gestehen, dass ich mit der MC - Programmierung 
erst anfange. Also die Parameter stimmen. Ich werde es mal mit der 
HEX-Ausgabe probieren.

//Tritt der Fehler auf, wenn mehrere aufeinanderfolgende "1" oder "0"
//in dem Zeichen vorkommen, dann läuft die Quarzfrequenz aus dem
//Ruder, oder der Vorteiler stimmt nicht.

Das hier verstehe ich nicht so richtig, mit dem Vorteiler.
Es wäre nett, wenn du es mir erklären könntest.


Simone
Gast #1584
Lesenswert?

Eigentlich gibt es einen Haufen Möglichkeiten, warum das nicht
klappt.
1. Es gibt ein Problem bei der Übertragung zwischen PC und µC,
z.B. wegen falscher Baudrate etc.
2. Es gibt ein Problem bei der Übertragung aus dem UART in
Dein Programm, z.B. wenn der UART ausgelesen wird, während
er gerade upgedatet wird.
3. Dein Programm verliert das Zeichen, z.B. wenn Du es in einem
Register speicherst, das von einem Interrupt überschrieben wird.
4. Das LCD kann das Zeichen nicht ohne weiteres anzeigen
(z.B. Umlaute)
5. u.v.a.

MfG,

Sebastian
Gast #1585
Lesenswert?

Hi Simone,
welchen Controller verwendest Du?
Welche Taktfrequenz hat der Controller?
Mit welcher Baudrate arbeitest Du?

Du kannst nämlich nicht mit jeder Taktfrequenz jede beliebige Baudrate 
erreichen, es sei denn, der UART (serielle Schnittstelle) Deines 
Controllers ist frei programmierbar.
Wenn die Baudrate nicht exakt stimmt kann es sein das bei einzelnen 
Zeichen ein Bit falsch empfangen wird.

Gruß
Markus
Gast #1587
Lesenswert?

Uff,
den kenn ich leider nicht.
Vielleicht besorgst Du Dir mal ein Datenblatt und überprüfst die 
Einstellungen der seriellen Schnittstelle.
Es kann gut sein das eine Baudrate von 9600 nicht 100% exakt passt bei 
einer Frequenz von 20MHz.
Sorry das ich Dir da nicht mehr helfen kann.

Gruß
Markus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren