PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Array auslesen geht nur bis zur bestimmten Größe



p_mork
20.03.2007, 12:05
Hallo,

ich hab wieder mal ein komisches Problem. Wenn ich ein const unsigned char -Array anlege, lässt sich dieses zur bis zu einer bestimmten Größe auslesen(ca 2,3k), wenn ich das Array größer mache kommt da nur noch Mist raus. Als Controller benutze ich einen M32, am Speicher liegts also nicht. Was konnste sonst der Fehler sein?

MfG Mark

ogni42
20.03.2007, 13:12
Da meine Glaskugel gearde zum Polieren weg ist, poste doch einfach mal den Code.

Nepi
20.03.2007, 14:00
EDIT: Nochmal von Vorn :)

Der Mega 32 hat 2k SRAM. Sollte das ganze keine Variable sondern ein Festwertspeicher werden kann du die Werte in des EEPROM speichern. Wie sowas geht siehst du hier: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Speicher. Wenn er die Werte nach Aus und wieder Einschalten noch haben soll kann man das auch in den Code einbauen.. Jedoch solltest du darauf achten, dass sich Flash und EEPROM nicht beliebig oft wieder beschreiben lassen. EEPROM laut Datenbaltt 100k mal und Flash 10k mal.
Ich hoffe das hilft dir ein wenig weiter.

p_mork
20.03.2007, 15:13
Der Mega 32 hat 2k SRAM. Sollte das ganze keine Variable sondern ein Festwertspeicher werden kann du die Werte in des EEPROM speichern.

Das ganze sollte im Flash gespeichert werden. Es ist ein Bild, das auf einem LCD angezeigt werden soll und ist deshalb sehr groß. Aber normaleweise sollte doch alles, was mit dem Attribut "const" deklariert wurde automatisch im Flash gespeichert werden oder?

MfG Mark

ogni42
20.03.2007, 15:41
Nein, es wird sowohl im Flash abgelegt und dann im RAM initialisiert. Was Du brauchst ist progmem. Siehe http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_rom_array