S65-Shield Display: Umlaute

Hallo zusammen,

gibt es eine Möglichkeit Umlaute an zu zeigen?
Verwende ich z.B. ein "ö", wird es einfach übersehen.

Vielen Dank für eure Hilfe.

Gruß,
Roland

Standardmäßig werden nur Zeichen von 0x20 bis 0x7F unterstützt, da die Zeichendaten relativ viel Platz einnehmen. Wenn man alle ASCII Zeichen darstellen möchte, dann muss man folgende Zeile in der /libraries/S65Display/fonts.h kommentieren oder entfernen:
#define FONT_END7F //chars: 0x20-0x7F

(Steht auch in der docu.htm zur S65-Lib.)

Gruß
Andreas

Hallo Andreas,

danke für deine Antwort.
Als ich die Doku gelesen habe, konnte ich mit "0x20 bis 0x7F" leider gar nichts anfangen. Und wenn ich ganz ehrlich bin, habe ich es nur im Ansatz verstanden.

Leider funktioniert es nicht.
Wenn ich diesen Schnippsel verwende, wird nur "Hhe" anstatt "Höhe" angezeigt.

  sprintf(text, "Höhe %im   ", wert); 
  lcd.drawText(5, 50, text, 2, RGB(0,0,255), RGB(255,255,255));

Und bei diesem Testcode, nur die 4 Punkte.

lcd.drawTextPGM(5, 5, PSTR("..äüö.."), 1, RGB(0,0,0), RGB(255,255,255));

Verwendet wir Arduino IDE 18 und S65-Shield v0.16.
Die Größe meines Codes hat sich selbst verständlich verändert, was mich darauf schliessen läßt, dass die Änderungen der fonts.h übernommen wurden.

#ifndef fonts_h
#define fonts_h


//Font settings
//#define FONT_8X8
#define FONT_8X12

//#define FONT_END7F //chars: 0x20-0x7F

#include "font_8x8.h"
#include "font_8x12.h"


#endif //fonts_h

Hi,
Da scheint es noch ein Problem mit den Datentypen in der S65-Lib zu geben. Ich habe gerade eine neue Lib hoch geladen (habs aber noch nicht getestet).

http://www.watterott.net/arduino/s65-shield_v017.zip

(#define FONT_END7F wieder kommentieren)

Mit der neuen Lib werden Zeichen angezeigt. Aber leider keine normalen Umlaute.

Auf dem Bild vor dem "by" sind drei Leerzeichen gegen "äüö" ausgetauscht worden.

Arduino IDE 18, Lib 17, Demo1, "//#define FONT_END7F".

Hallo,

das ist ein C Problem. Man muss die Umlaute direkt als "Zahl" eingeben, z.B. "Test \x84 \x94 \x81" für "Test ä ö ü"

0x84 = ä
0x8E = Ä
0x94 = ö
0x99 = Ö
0x81 = ü
0x9A = Ü

Eine elegantere Lösung kenne ich dafür leider auch nicht.

Gruß
Andreas

Korrektur: Das ist kein C-Problem, sondern eins der IDE.
C ist es völlig egal was es da anzeigt. Die IDE verwendet aber eine Zeichenkodierung für die Quelltexte, die nicht mit der Kodierung des Displays übereinstimmt.

Keine Ahnung, ob man die IDE da umstellen kann.

Gruß
pi

Ja stimmt, das ist kein Problem der C-Sprache an sich.
Da die Arduino IDE auf versch. Betriebssystemen läuft, wird sich das dort wahrscheinlich auch noch unterscheiden.

Gruß
Andreas

Ob die IDE oder C daran schuld ist, kann ich leider nicht beurteilen.

ABER es funktioniert mit dem Umweg \x94, zumindest bei Windows. Juhu!

Wenn ich noch erfahren dürfte, wie man auf \x94 kommt. In einer ergoogelten ASCII-Tabelle steht für HEX 94 nämlich das Zeichen ”.

Gruß und Dank,
Roland

Das war wahrscheinlich dann eine ANSI-Tabelle.
Schau mal hier http://www.asciitable.com/ unter Extended ASCII Codes.

Autsch!
Mein Fehler.