Dubbla adresser, AVR Studio
Postat: 3 april 2007, 02:08:47
Varfär står det två adresser i I/O view i AVR Studio?

Har skrivit ett program (till AT90S8515) som bla ska sparar lite data på EEPROM:et men det funkar inte om man skriver så här:
Men om man däremot skriver detta så funkar det
Det konstiga är ju att alla adresser är ju definierade i include filen (8515def.inc) men ändå måste man skriva adressen. Dessutom så funkar det inte med de definierade adresserna till EEARH och EEARL. Men när man ändrar dessa
0x1e till 0x3e
0x1f till 0x3f
då funkar det. Men dessa nya adresser är i include-filen definierade som SPH och SREG.
utdrag ur 8515def.inc

Har skrivit ett program (till AT90S8515) som bla ska sparar lite data på EEPROM:et men det funkar inte om man skriver så här:
Kod: Markera allt
// Lite skräp innan
clr temp // Sätter EEPROM adress till 0
sts eearh,temp
sts eearl,temp
lds temp1,$0091 // Sparar $0091 på EEPROM
out eedr,temp1
sbi eecr,eemwe
sbi eecr,eewe
// Lite skräp efter
Kod: Markera allt
// Lite skräp innan
clr temp // Sätter EEPROM adress till 0
sts 0x3f,temp
sts 0x3e,temp
lds temp1,$0091 // Sparar $0091 på EEPROM
out eedr,temp1
sbi eecr,2
sbi eecr,1
// Lite skräp efter
0x1e till 0x3e
0x1f till 0x3f
då funkar det. Men dessa nya adresser är i include-filen definierade som SPH och SREG.

utdrag ur 8515def.inc
Kod: Markera allt
.
.
.
.equ SREG = 0x3f
.equ SPL = 0x3d
.equ SPH = 0x3e
.equ GIMSK = 0x3b
.
.
.
.equ WDTCR = 0x21
.equ EEARL = 0x1e
.equ EEARH = 0x1f
.equ EEDR = 0x1d
.equ EECR = 0x1c
.
.
.
;EECR - EEPROM Control Register
.equ EERE = 0 ; EEPROM Read Enable
.equ EEWE = 1 ; EEPROM Write Enable
.equ EEMWE = 2 ; EEPROM Master Write Enable
.
.
.