Hallo zusammen!
Gerade habe ich in einem C-Beispielprogramm folgende Zeile gesehen:
const unsigned char textstring[4] PROGMEM = "RED";
Das Programm wurde übrigens für einen ATmega8 geschrieben!
Was genau bedeutet PROGMEM?
Hallo zusammen!
Gerade habe ich in einem C-Beispielprogramm folgende Zeile gesehen:
const unsigned char textstring[4] PROGMEM = "RED";
Das Programm wurde übrigens für einen ATmega8 geschrieben!
Was genau bedeutet PROGMEM?
Der Text wird zur Laufzeit aus dem Flash geholt und nicht dauernd als Variable im RAM gespeichert.
Spart also Platz im RAM.
Muss man solche im Flash gespeicherten Variablen dann auch gleich bei der Variablendeklaration einen Wert zuweisen?
Weil während der ATmega läuft kann man doch nichts in den Flash speichern, oder?
Hier wird es definiert:und das hier ist der Aufruf dazu:Code:const char Versionsnummer[]PROGMEM="Vers1.40";Ideal ist es wenn Ausgabetexte öfter vorkommen, da sie nur ein mal gespeichert werden müssenCode:lcd_puts_p(Versionsnummer);Code:const char Wertdef[2][3]PROGMEM ={"Hz","mV"}; lcd_puts_p(Wertdef[0]); /* Bezeichnung Hz ausgeben */
Lesezeichen