Forum: Mikrocontroller und Digitale Elektronik Tabelle in EEPROM auslesen


von Jan Z. (Firma: ujbxp) (zodiax)


Lesenswert?

Hallo,
ich möchte 3 Werte einer Tabelle ins EEPROM schreiben und
mit der Laufzeit die Werte in 3 Register einlesen;
danach soll der nächste Wert ausgelesen werden.
Kann mir bitte jemand helfen, ich komme einfach nicht weiter...

Controller ATMEGA32, Assembler

Die Register R16,R17,R18

Tabelle:
.db 12,8,4
.db 7,3,2
...
Diese Tabelle soll ins EEPROM vom Atmega32 geschrieben werden,
die Tabelle wird später 1024 Spalten mit jeweils 3 Werten enthalten.
Es soll dann der per Laufzeit der erste Wert ausgelesen werden:
R16=12, R17=8, R18=4
Dann beim nächsten Aufruf soll der nächste Wert
eingelesen werden R16=7, R17=3, R18=2 usw..
Wenn die Tabelle am Ende ist, soll wieder zum Anfang gesprungen werden.

Ich weiß für viele klingts sehr einfach, um Codeschnipsel bin ich jetzt
schon sehr dankbar...

Gruß
Zodiax

von Jens (Gast)


Lesenswert?

Das wir Dir nicht gelingen!

Der ATMega32 hat nur 1KByte EEProm! und nicht 3K.

von Jan Z. (Firma: ujbxp) (zodiax)


Lesenswert?

Jens wrote:
> Das wir Dir nicht gelingen!
>
> Der ATMega32 hat nur 1KByte EEProm! und nicht 3K.

ok, dann muß ich die Tabelle kleiner machen.
Bleibt die Frage: wie lese ich die Werte nun in die Register?

von Jens (Gast)


Lesenswert?


von Jean P. (fubu1000)


Lesenswert?

Hi,
die Frage ist eher, was soll das im EEPROM ?
Schreibs ins Flash und gut ist. Oder soll an der Tabelle zur Laufzeit 
Werte geändert werden ?

Ansonsten so:

ldi ZL, LOW(Tab*2)
ldi ZH, HIGH(Tab*2)

lpm r16, Z+
lpm r17, Z+
lpm r18, Z+


//tu was mit deinen Daten und falls Ende erreicht wieder Z auf Anfang 
setzen //usw.....

Tab:
.db   0x01, 0x02, 0x03



GRUß

von Jan Z. (Firma: ujbxp) (zodiax)


Lesenswert?

...vielen Dank Euch beiden! super.

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.