PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variable im EEPROM



dwod
12.10.2006, 17:24
Hallo,

so ganz hab ich das mit den Variablen im EEPROM noch nicht verstanden.

Ich nehme an, dass die Variablen im SRAM und im EEPROM verschiedene Namen haben müssen.

Wenn ich also schreibe :

DIM X SRAM
DIM Y ERAM

Y=X
.....
.....

X=Y

werden dann die Variablen automatisch vom SRAM ins EEPROM geschrieben bzw. umgekehrt ?

Ich will einfach nach dem Ausschalten einige Werte im EEPROM speichern und beim Einschalten wieder zurücklesen.


Gruss

Wolfgang

PicNick
12.10.2006, 17:30
Ja,
DIM y AS ERAM BYTE ' IM EEPROM
DIM x AS BYTE ' SRAM
Y= X ' speichern
X=Y 'wieder lesen

Solche Namen müssen innerhalb des Programmes natürlich eindeutig sein, logo.

Direkt im ERAM arbeiten tu' aber nicht, der Zugriff ist zu langsam.

dwod
12.10.2006, 17:56
Vielen Dank für die schnelle Antwort.

Wäre es unverschämt, wenn ich noch ne Frage dranhänge ? O:)

Wie mache ich es beim ersten mal ? Woher weiss ich, dass ich schon mal einen Wert ins ERAM geschrieben hab? Ich könnte das ERAM ja auslesen, aber wenn ich es noch nicht beschrieben hab gibts wohl ne Fehlermeldung (oder gibt der Compiler 0 zurück, dann wäre das Problem gelöst) ?


Gruss

Wolfgang

PicNick
12.10.2006, 18:20
Ein Leerer/geköschter EEPROM steht normalerweise alles auf &HFF
Mir reicht es oft, wenn ich mache


IF erambyte <> &Hff then
variable = erambyte
else
variable = defaultwert
end if

Man kann auch ein eigenes Kontroll-Zeichen im Eram anlegen, noch besser natürlich eine Kontrollsumme, falls der Eprom irgendwie vernudelt worden ist

dwod
12.10.2006, 18:48
@PicNick

wenn Du schreibst, dass es so funktioniert, werde ich das übernehmen. Womit ich ein Problem habe: wenn im ERAM lauter FFs oder Nullen stehen, woher weiss der Compiler dann, wo die Variable liegt ? Ich dachte, zu Beginn baut der Compiler eine Tabelle auf mit den Zeigern zu den declarierten Variablen. Deshalb die Frage nach der Fehlermeldung.

Gruss

Wolfgang

PicNick
12.10.2006, 19:02
Neinein, der ERAM ist genauso mit Adresse 0 - juchuu
Bascom legt für
DIM Muh AS ERAM BYTE ' (EEPROM) adresse 0
DIM Kuh AS ERAM BYTE ' (EEPROM) adresse 1
usw.
Da und auch fürs SRAM gibt's keine Tabellen, die Adressen stecken direkt in den Befehlen drin.

dwod
12.10.2006, 19:23
@PicNick

ich danke Dir für die Hilfe und wünsche Dir noch einen schönen Abend.


Gruss

Wolfgang

P.S. Wenn es denn die Möglichkeit gäbe, würde ich Dir jetzt ein Glas Kölsch rübermailen 8)

PicNick
12.10.2006, 19:29
..ein Glas Kölsch rübermailen ..

exzellenter Gedanke ! :-)