Forum: Mikrocontroller und Digitale Elektronik Zeichensatz anpassen mit Eclipse für STM32F103VE und Grafikdisplay


von Jörg (Gast)


Angehängte Dateien:

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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Jörg (Gast)


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.

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.