ich kann dir "nur" auf deine erstefrage antworten. das schreiben in den eeprom macht "nur" dann sin wenn die daten auch bei einem reset den µC beibehalten werden. dies amcht auch auch nur bei variabeln sinn... konstatnten sind ja eh festgelegt
Druckbare Version
ich kann dir "nur" auf deine erstefrage antworten. das schreiben in den eeprom macht "nur" dann sin wenn die daten auch bei einem reset den µC beibehalten werden. dies amcht auch auch nur bei variabeln sinn... konstatnten sind ja eh festgelegt
.. ok, kapiert ;)
Also brauche ich das, um nachträglich z.B. per Tasten geänderte Werte vor Stromausfällen o.ä. zu sichern (wenn ich es richtig verstanden habe)
Genau dafür möchte ich es auch im Code einsetzen; da mach ich nämlich so was ...
Aber irgendwie klappt das nicht... folgendes Beispiel- Konstrukt:
Bei der Zeile Z1 = Z1 + E0 bekomme ich dann ein "Invalid Datatype" ?!?Code:Const E0 = 15
Const E1 = 300
...
Dim Z1 As Eram Word
Z1 = E1 'Default laden
...
'Setup: Jeder Tastendruck erhöht Z1
Z1 = 15
Tastenabfragen:
...
Z1 = Z1 + E0
...
GOTO Tastenabfragen
Ziel der Aktion ist, beim allerersten Start bestimmte Variablen mit den Defaultwerten aus den Konstanten zu füllen. Beim fertigen System kann man über eine Tastenkombination in den Setup- Modus gelangen und dort die mit den Defaults belegten Variablen über Tastendrücke selber einstellen...
Gaaaanz böse ;-)
Grundsätzlich NIE ein Eeprom in einer Schleife beschreiben, das macht es nicht lange mit. Am Besten nur nach Bedieneraktion.
Guck dir mal den Befehl Writeeeprom und Readeeprom an.
Gruß Günter
Meines Wissens kann man mit ERAM-Variablen nicht direkt rechnen. Ich hab´s zumindest immer so gelöst, dass ich mir eine "normale" Variable im SRAM definiert habe, sie mit der entsprechenden ERAM-Variablen gleichgesetzt und mit ihr weitergerechnet habe.
Außerdem sind die ERAM-Speicherplätze auch nicht unenedlich oft beschreibbar. Auch wenn´s 10- oder 100.000 mal geht - wenn man den ERAM einmal pro Sekunde beschreibt, ist er statistisch gesehen in gut einem Tag hin...
... ah, ok. Gleich wieder 2 Sachen dazu gelernt: Nicht "böse" zum Eram sein und direkt rechnen darf man damit auch nicht.
Dann muss ich mal den Code entsprechend umstricken, so das ich zum einen nur nach einem Reset die Daten aus dem Eram lese und den Variablen zuweise und zum anderen alle geänderten Variablen einsammle und erst nach dem kompletten Setup ins Eram schreibe. Das lässt sich m.E. ja gut mit einem Array lösen, welches man ja direkt ins Eram schreiben resp. lesen kann (oder?).
Nachtrag:
Wenn ich das richtig sehe, ist Lesen längst nicht so schädlich wie Schreiben für das EEprom, oder?
Dann könnte ich ja beim Übertragen der Daten zum AVR gleich die Defaults ins EE schreiben mit ...
... und nach Definition eines Array mit z.B. Dim Prog(11) As Word via Readeeprom prog() mit den Werten aus dem EE füllen ... oder?!?Code:$eeprom
Data 300 , 3600 , 256 , 512 , 5 , 60 , 300 , 30 , 300 , 16 , 3
$data
jap genau lesen kan man es meines wissens nach "so oft man will" nur die schreibzyklen sind begrenzt