www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ascii-Zeichen auf LCD


Autor: Markus M¨¹ller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich arbeite mit einem M16C28 (Compiler NC30 von Renesas mit
HEW-Umgebung) und will auf einem LCD-Display Ascii-Zeichen in
verschiedenen Fonts ausgeben. Auf dem LCD ist ein KS0108B
Segment-Driver. So weit so gut. Ansteuerung klappt wunderbar. Ich habe
eine Tabelle in meinem Flash hinterlegt f¨¹r jedes Zeichen die
entsprechenden Pixel, auch das funktioniert.
Nun will ich folgendes ausgeben:

LCDText("D¨¹sseldorf",0,0); // Schreibt D¨¹sseldorf an Position
X=0,Y=0
void LCDSoftText(const char *zeiger, unsigned char xpos, unsigned char
ypos);// Funktion mit Argumenten funktioniert einwandfrei

Statt dem "¨¹" liesst er "¦²" und schreibt den entsprechenden Wert,
auch wenn ich das Zeichen ¨¹ber die DOS-Eingabe eingebe.
Kann es sein das der Compiler aus einer anderen Zeichentabelle liesst
wie ich will, oder wo liegt der Fehler?

Ciao

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonderzeichen wie 'ü', 'ä', 'ß' (also alles was nicht
im Standard-ASCII Code drinnen ist) sind  immer problematisch.
Wenn alles nichts hilft, dann musst Du die Zeichen direkt
angeben:
Angenommen das 'ü' hat auf Deinem Display den Code 0x8A, dann
kannst Du den Hex-Code von 0x8A direkt in den String einbetten:

  "D\x8Asseldorf"

das ist die Escape Sequence \x gefolgt von 2 Zeichen fuer
den Hex-Code des gewuenschten Zeichens.

Im schlimmsten Fall musst Du Dir halt eine Routine basteln,
die die entsprechenden Ersetzungen passend zu Deinem
Display vornimmt.

Autor: Markus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, das hilft mir schon ein wenig weiter.
Liegts nun am Compiler oder wie sind nun die Verhältnisse?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yep. Compiler / Betriebssystem.
Die Codetabellen stimmen nicht mit denen Deines
Displays ueberein.
Was mich allerdings stutzig macht: In Deinem Beitrag
kommen offensichtlich ein paar Umlaut-u vor. Die werden
bei mir samt und sonders durch eigenartige Sonderzeichen
dargestellt. Kann jetzt an Deinem PC liegen oder an meinem.
Ich tipp aber mal auf Deinen.

Autor: Mark Hämmerling (haemi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Salve,

naja, liegt dann wohl doch eher am LCD-Controller, bzw. an dem
eigenartigen Zeichensatz (ich vermute, ähnl. dem des HD44780A00).
Immerhin hält sich sein PC und sein Compiler zumindest an ASCII (8bit),
während das LCD keinem mir bekannten genormten Zeichensatz folgt. Die
Umlaute sind dort an eher willkürlichen Stellen untergebracht, so daß
es nicht ohne Übersetzung (Mapping) geht. Ich persönlich löse das auch
durch Einbringen der entsprechenden Hex-Codes in die Strings.

Mark

PS: Das "ü" in Düsseldorf steht schon im HTML-Source so verkorkst
drin. Ich habe HTML noch als 7bit-Sprache kennengelernt, und da heißt
es ü. Ist es nicht Aufgabe des Browsers, die Form-Daten beim
Post-Request entsprechend zu codieren?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.