PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit AtMega48 - Wirrwarr im RAM



dennisstrehl
03.04.2006, 22:31
Hallo Leute,

ich hab da ein Problem mit meinem AtMega48 das ich alleine nicht gelöst
bekomme.
Ich hab ein Programm, das einen haufen Variablen (9*6 Stück) aus dem
EEprom auslesen soll. Diese liegen im Eeprom von Addresse 0x00-0x5F
(Ich hab den Eeprom in 16-Byte-Blöcke aufgeteilt, in jedem liegen je 9
Variablen. Das angehängte Programm soll diese zunächst in einer
Schleife einlesen und im SRAM speichern. Danach werden die ersten 9
Werte in Register übertragen. Zwischendurch werden die Werte auch noch
per USART ausgegeben. In der Simulation funktioniert es nun endlich,
nachdem ich herausgefunden habe, dass man das Eeprom-Image manuell
einfügen muss. Jedes Register hat den korrekten Wert. In der Realität
sieht das "ein wenig" anders aus. Die Register enthalten jedes Mal
Zufallszahlen.
Am Eeprom scheint es nicht zu liegen, ich hab das Programm jetzt einmal
laufen lassen und danach nochmal über den Programmer das Eeprom-Image
überprüft. Außerdem werden in der Schleife die Werte, die ausgelesen
worden sind, ausgegeben -> alles korrekt
Auch am AtMega scheint es nicht zu liegen, ich hab jetzt nochmal einen
anderen ausprobiert und es passiert das gleiche.
Das blödeste ist, dass es in der Simulation läuft und real nicht.
An den Initialisierungen am Anfang (USART und CLKPR) liegt es meiner
Meinung nach auch nicht.

Irgendwer ne Idee?

Edit:

Hab noch was vergessen was ich eigentlich noch schreiben wollte:

Die Taktquelle ist ein externer 18,432 MHz-Oszillator, geteilt durch 32
per CLKPR.
Programmiert wird der Controller per Avreal
(http://ln.com.ua/~real/avreal/index_e.html), aber ich denke eigentlich
nicht dass das was ausmachen kann. Oder?

dennisstrehl
03.04.2006, 23:09
Hab den Fehler jetzt gefunden. Dass der SRAM nach dem Reset nicht auf 0 ist war mir ja bekannt, aber beim ZL-Register scheint das auch so zu sein. Deswegen wurden die Daten sonstwo hingeschrieben. Naja, Problem gelöst und wieder was dazugelernt.

SprinterSB
04.04.2006, 07:33
Genau Weder RAM noch Register sind nach dem Reset in einem PowerDown- oder BrownOut-Reset in einem definierten Zustand.

Durch die Hardware werden nur die SFRs in definierte Zustände gebracht.