AVR Array im Flash lokatiert

#856808
Lesenswert?

Hallo,

ich nutze einen ATmega168 und habe ein unerklärliches Fehlerbild.
Ich lokatiere ein Array aus unsigned char ins Flash.
Auszug aus dem c-File:
#include <avr/pgmspace.h>

static unsigned char PROGMEM segIndexPattern[3] = {0x08,0x10,0x20};
....

Im Debugger sehe ich, dass das Array ins Flash lokatiert wurde.
Das Programm liest aber zur Laufzeit Müll aus.
Wenn ich das Array ins RAM lokatiere, funktioniert mein Programm 
einwandfrei.

Hat jemand einen Tipp für mich ?

Gruß Martin
#856814
Lesenswert?

Wenn Du ein Array im Flash speicherst, dann musst Du den Funktionen, die 
damit arbeiten sollen, auch mitteilen, dass sie das Array von da holen 
sollen. Und ich vermute, genau das tust Du nicht. Zum Lesen von im Flash 
gespeicherten Daten gibt es z.B. (ebenfalls in der pgmspace.h) spezielle 
Funktionen --> Doku lesen...

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