PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PROGMEM



masasibe
23.01.2011, 13:10
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?

Hubert.G
23.01.2011, 14:15
Der Text wird zur Laufzeit aus dem Flash geholt und nicht dauernd als Variable im RAM gespeichert.
Spart also Platz im RAM.

masasibe
23.01.2011, 17:00
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?

Hubert.G
23.01.2011, 20:12
Hier wird es definiert:
const char Versionsnummer[]PROGMEM="Vers1.40";und das hier ist der Aufruf dazu:
lcd_puts_p(Versionsnummer);
Ideal ist es wenn Ausgabetexte öfter vorkommen, da sie nur ein mal gespeichert werden müssen
const char Wertdef[2][3]PROGMEM ={"Hz","mV"};
lcd_puts_p(Wertdef[0]); /* Bezeichnung Hz ausgeben */

masasibe
24.01.2011, 15:26
Okay!
Vielen Dank!