Hallo,
irgendwie komm ich hier nicht klar. Hab mir einige Beispiele aus dem Netz gesucht, aber irgendwie funktioniert das nicht. Momentan hab ich den Eindruck, dass einige Leute Codeschnipsel veröffentlichen, ohne sie zu testen:
Ich will in einem Projekt konstante Texte im Flash ablegen, um sie bei Bedarf auf einem LCD-Display anzeigen zu können. Dazu habe ich im Web gesucht, wie man das macht, ohne RAM zu verschwenden.
Dazu habe ich unter anderem das hier gefunden:
siehe auch:
------------------------------------------------------------ #include const prog_char str3[] = "Hallo Welt!"; unsigned int strlen_P (const prog_char *str) { unsigned int len = 0; while (1) { char c = (char) pgm_read_byte (str); if ('\0' == c) return len; len++; str++; } }
-------------------------------------------------------------- daraus hab ich dann folgendes gemacht:
void LCD_printtxtfromflash(char line, const prog_char *FlashSTR) { char c; do { c = pgm_read_byte (FlashSTR++); if (c) LCD_printchar(line++,c); } while (c); }
const prog_char FS_1D[] = "Bitte geben Sie den"; LCD_printtxtfromflash(0,FS_1D);
----------------------------------------------------------
Die Funktion LCD_printchar schreibt ein einzelnes Zeichen auf ein LCD-Display und funktioniert ansonsten einwandfrei.
Hier bekomme ich aber nur Unsinn auf das Display geschrieben. Hat da jemand einen Tipp für mich?
Gruß
Stefan DF9BI