Gast
#2464709
Hallo.
Ich möchte im internen EEprom eines ATMega64 einen Ringspeicher anlegen.
Dazu gibt es eine Struktur bestehend aus 10 Byte, die im einzelnen
unterschiedliche Status im µC während der Laufzeit wiederspeigeln.
Die Sturktur kann insgesamt 10mal im EEprom abgespeichert werden, danach
wird auf dem ersten Speicherplatz weiter gemacht und die Daten werden
übeschrieben.
Um zu weissen an stellen ich mich gerade beim Abspeichern befinde, lasse
ich einen Index Zähler mitlaufen, der die aktuelle Position im EEprom
darstellt. Läuft also von 0-9.
Dieser ist wie folgt definiert:
#asm
.cseg
.org 0x0200 ;Adresse im EEprom festlegen
#endasm
eeprom byte indexcounter = 0; // Byte Anzahl der Status, maximal 10
// an Adresse 0x0200 im EEprom
Hier schon meine erste Frage. Die Zuweiseung eeprom byte indexcounter =
0; ist das eine Zuweisung, oder nur ein Hinweis für den Compiler, dass
an dieser Stelle im EEprom dieser Parameter agbespeichert ist?
Im späterene Programmverlauf wird indexcounter inkrementiert:
......
indexcounter++;
......
Bei einem Neustart des Controllers ist dieser Wert nicht null, wie oben
initialisiert, sondern entspricht meinem Index.
Ich habe hier eine grundsetzliche Sache nicht korrekt verstanden. Kann
mir jemand eine Erläuterung zu meiner Frage geben?
Danke