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
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...
Gast
#856864
Brauchst du die pgm_read_byte() , zum lehsen die data (bytes) von progmem. Guch mahl hier http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=38003 /Bingo Dänemark
Auslesen mit pgm_read_byte(... funktioniert. Wieder was gelernt Danke für die Hinweise Martin
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.