Zeichensatz anpassen mit Eclipse für STM32F103VE und Grafikdisplay

Gast #2858457
Lesenswert?

Hallo,

seid ein paar Monaten beschäftige ich mich mit der C-Programmierung 
eines STM32F103VE. Ich verwende Eclipse und Yargato und bin ansonsten 
Anfänger. Die Ansteuerung eines 320x240-Pixel-Displays mit dem One-Chip 
Driver LGDP4532 habe ich halbwegs im Griff und mit Excel einen eigenen 
Zeichensatz kreiert (siehe Anlage). Vom Leerzeichen bis zum kleinen "z" 
stimmt dieser Zeichensatz mit dem Windows-üblichen Zeichensatz überein. 
Um Designarbeit und Speicherplatz zu sparen, sollen ab dem Zeichen #123 
nur noch die unbedingt nötigen Zeichen folgen. Zur Zeit muss die 
Ausgaberoutine die auszugebenen Zeichen testen und bei Bedarf die Nummer 
des Zeichens (Ä = #196) in die Nummer meines Zeichensatz (Ä = #123) 
übersetzen. Gibt es eine Möglichkeit Eclipse oder dem GNU-Compiler 
mitzuteilen, dass ein Ä nicht die Nummer #196 hat, sondern #123? Das 
würde das Programm vereinfachen und die Ausgaberoutine beschleunigen.
Angehängte Dateien:
Persönliche Seite #2858664
Lesenswert?

> Gibt es eine Möglichkeit Eclipse oder dem GNU-Compiler
> mitzuteilen, dass ein Ä nicht die Nummer #196 hat, sondern #123?

Ziemlich sicher nicht.

> Zur Zeit muss die Ausgaberoutine die auszugebenen Zeichen
> testen und bei Bedarf die Nummer des Zeichens (Ä = #196)
> in die Nummer meines Zeichensatz (Ä = #123) übersetzen.

Wenn Du Deiner Ausgaberoutine eine Tabelle mit 256 Byte Größe 
spendierst, kannst Du mit einem einzigen Tabellenzugriff beliebige 
Zeichensatzcodierungen abbilden.

Das verzögert annähernd überhaupt nicht.

Als Index für den Tabellenzugriff nimmst Du den Zeichencode nach 
ISO8859-1, und in der Tabelle steht der Index in Deine eigene 
Zeichensatztabelle. Für Zeichen, die nicht in Deiner Zeichensatztabelle 
enthalten sind, wird auf ein Standardzeichen wie z.B. das Leerzeichen 
verwiesen.
Gast #2859208
Lesenswert?

Rufus Τ. Firefly schrieb:
> Wenn Du Deiner Ausgaberoutine eine Tabelle mit 256 Byte Größe
> spendierst, kannst Du mit einem einzigen Tabellenzugriff beliebige
> Zeichensatzcodierungen abbilden.

Ich denke das ist eine gute Idee. Das Übersetzen mit einer Tabelle ist 
besser und flexibler als mit einer switch-Anweisung. Einen Teil der 256 
Byte spare ich durch die kürze Ausgaberoutine. Den eventuellen Rest 
verkraftet der 512-KB-Flashspeicher locker. Danke rufus.

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