Forum: Mikrocontroller und Digitale Elektronik ATMega64 internen EEprom beschreiben


von Michael_SS (Gast)


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
von Uwe (Gast)


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
von Michael_SS (Gast)


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.
von Purzel H. (hacky)


Lesenswert?

Das EEPROM benoetigt Zugriffsprozeduren (=Code), das isr nicht so 
trivial wie bei einem RAM. Das Datenblatt hat ein Kapitel drueber.
von spess53 (Gast)


Lesenswert?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.