Problem mit EEPROM

Gast #159278
Lesenswert?
• ▲
▼
Hallo zusammen,

Ich hab ein kleines Problem mit meinem EEPROM-Code.
1
.def Temp1 = R16
2

3
.dseg
4
Tr0: .Byte 1
5

6

7
.cseg
8

9
;Stack initialisieren
10
ldi Temp1,low(RAMEND)
11
out spl,Temp1
12
ldi Temp1,high(RAMEND)
13
out sph, Temp1
14

15
ldi zl,low(TreiberIDs) ;Adresse ins EEPROM-Adress-Register laden
16
ldi zh,high(TreiberIDs)
17
out EEARL,zl
18
out EEARH,zh
19

20
sbi EECR,EERE ;Read-Enable-Bit im EEPROM-Controll-Register setzen
21

22
in Temp1,EEDR ;Daten aus dem EEPROM-Daten-Register laden
23

24
sts Tr0,Temp1
25

26
.eseg ;EEPROM
27
.org 0000
28
TreiberIDs:
29
  .db 0x00,0x00,0x00,0x00

Der Sinn dieses Codes ist es einen Wert aus dem EEPROM auszulesen und
ins SRAM zu speichern.

Ich lasse den Code mit AVR-Studio 4 simulieren, weil ich im Moment
keine Möglichkeit habe Hardware aufzubauen.

Das Problem ist jetzt, dass während der Simulation immer der Wert 8 aus
dem EEPROM gelesen wird und nicht 0x00, wie es eigentlich sein sollte.

Hab ich einen Fehler im Code oder liegt das am AVR-Studio ?
Gast #159279
Lesenswert?
• ▲
▼
Das liegt am AVR-Studio.
Die .eep-Datei interressiert AVR-Studio in der Simulation nicht die
Bohne.
Las Dir während der Simulation mal den EEPROM-Bereich anzeigen und Du
wirst sehen, das dort wirres Zeugs drin ist.
Du kannst während der Simulation die Werte durch klicken und eingeben
ändern.

MfG
Andi
Gast #159280
Lesenswert?
• ▲
▼
Du kannst aber auch die aktuelle EEP-Datei in die Simulation laden. Der
Dialog dazu ist etwas versteckt und AVR-Studio regt sich auf, dass die
Größe der EEP-Datei nicht mit der Größe des EEPROMs übereinstimmt. Aber
gehen tut das. Leider macht der Simulator von AVR-Studio das nicht von
selbst.

...

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