@ Stefan (Gast)
>wie kann ich umlaute direkt in lcd_string(); einfügen?
So
1 | //LCD code for german Umlaute
|
2 |
|
3 | #define ue "\xF5"
|
4 | #define oe "\xEF"
|
5 | #define ae "\xE1"
|
6 |
|
7 | const uint8_t MN100[] PROGMEM="1. Men" ue " 1";
|
8 | ...
|
9 | lcd_string("Hauptmen" ue);
|
Nicht perfekt, aber brauchbar. Die Vollprofilösung wäre wahrscheinlich
UTF-8 etc. Die zusammengestückelten Strings sind zu Sicherheit, damit
die Hexzahl nicht aus Versehen durch einen nachfolgenden Buchstaben A-F
verfälscht wird.
1 | const uint8_t MN100[] PROGMEM="Frühstück";
|
2 | // geht nicht, weil kein normales ASCII
|
3 |
|
4 | const uint8_t MN101[] PROGMEM="Fr\xF5hst\xF5ck";
|
5 | // geht nicht, weil nach der HEX F5 ein c kommt,
|
6 | // was als 0xF5C interpretiert wird!
|
7 |
|
8 | const uint8_t MN101[] PROGMEM="Fr" "\xF5" "hst" "\xF5" "ck";
|
9 | // geht
|
10 |
|
11 | const uint8_t MN101[] PROGMEM="Fr" ue "hst" ue "ck";
|
12 | // geht, besser lesbar
|
MFg
Falk
P S die \0 braucht man nicht bei Stringdefinitionen, das macht der
Compiler allein.