ATMega64 internen EEprom beschreiben

Gast #2464709
Lesenswert?

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
Gast #2464730
Lesenswert?

> Ich habe hier eine grundsetzliche Sache nicht korrekt verstanden. Kann
> mir jemand eine Erläuterung zu meiner Frage geben?

Datenblatt lesen ! Abschnitt "AVR  Memories"->"EEPROM Data Memory"

Dann wird dir alles klar
Gast #2464814
Lesenswert?

Das Datenblatt hat mir jetzt nicht wirklich viel Neues gebracht. Ich 
habe mir aber mal das List File angeschaut. Diese sagt, dass es sich bei 
der fraglichen Stelle nur um eine Initialisierung handelt und nicht um 
eine Zuweisung.

Trotzdem Danke.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren