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
> 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
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.
Das EEPROM benoetigt Zugriffsprozeduren (=Code), das isr nicht so trivial wie bei einem RAM. Das Datenblatt hat ein Kapitel drueber.
Hi http://www.atmel.com/dyn/resources/prod_documents/doc2526.pdf http://www.atmel.com/dyn/resources/prod_documents/AVR101.zip MfG Spess
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.