Liebes Forum,
ich habe einen ATmega32 und habe ein Programm mit Assembler geschrieben.
Ich will aus meinem EEprom das erste von 8 Bytes laden, und an PortD
ausgeben. Doch leider wird an PortD ständig 0b11111111 ausgegeben, kann
mir jemand sagen warum?
1
.include "m32def.inc" ; Definitionsdatei
2
3
.cseg // Programm Code für den Flash Speicher
4
5
// Deklaration von Konstanten //////////////////////////////////////
Hat jemand eine Idee was ich falsch mache? Liegt es vielleicht daran
dass ich eine falsche Adresse zum Auslesen eines Bytes aus dem EEPROM
verwende?
Wie erhalte ich denn die Adresse um "daten" aus dem eeseg zu lesen?
Problem gelöst:
Ich habe ganz vergessen die HEX Datei für den EEPROM auf den Chip zu
laden!
Wichtig:
Erst den Programmspeicher flashen, dann den EEPROM, ansonsten wird der
EEPROM immer leer sein.
Hallo K.R.
na der beitrag war ja bisher ein Selbstgespräch :-)
Aber trotzdem erfolgreich...
Aber wieso erst flahen und dann Eeprom laden?
Ich habe meinen Atmel schun gefühlt hundert Mal geflashed und nie ein
Eeprom drüber gebügelt und trotzdem sind alle Parameter noch vorhanden.
Es gibt aber beim AVR Studio irgendwo ein Hacken damit der Eprom bei
Device löschen nicht mit gelöscht wird.
Du kannst deine EEPROM Daten auch im Code unter .eseg schreiben dann
wird es gleich mit geflashed mindestens im Avr-Studio.
.ESEG ;* Data table:
.db 0x46 ;data00 = F
.db 0x52 ;data01 = R
.db 0x4F ;data02 = O
.db 0x48 ;data03 = H
.db 0x45 ;data04 = E
.eseg
Data: .db 0x6f, 0x06, 0xab, 0x8f, 0xc6, 0xcd, 0xed, 0x07, 0xef, 0xcf,
0x01, 0x02, 0x03, 0x04, 0x05, 0x06im Quelltext steht?