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...
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.