Forum: Compiler & IDEs Daten in EEPROM schreiben/lesen


von Markus S. (schama)


Lesenswert?

Hallo,

Schreibe grade ein kleines Codeschloss Programm und versuche mehre
Arrays in EEPROM ablegen. Nur mit einem funktioniert es problemlos aber
wenn ich mehrer Arrays definieren möchte ist fertig mit lustig. Ich habe
versucht die Deklaration EEMEM zu integrieren, der Compiler schreit
Fehler und Warnungen. Was mache ich falsch?
(AVR Studio, WINAVR)


/*                */
#define   F_CPU 3686400  // Taktferquenz
#include  <avr\io.h>
#include   <avr\delay.h>
#include  <avr\eeprom.h>
#include  <inttypes.h>

#ifdef EEMEM
#define EEMEM attribute ((section (".eeprom")))
#endif
uint8_t Cod_1[] EEMEM={10,10,10,10,10,10,10,10,10,10}; // Was ist da
falsch!!


../Codeschloss5.c:23: warning: (near initialization for `EEMEM')
make: *** [Codeschloss5.o] Error 1
Build failed with 1 errors and 20 warnings...

Gruss
Markus

von Markus S. (schama)


Lesenswert?

Hallo

Wenn ich mein Programm zu Flashen versuche, bekomme ich die Meldung vom
AVRStudio

Adress: 0x0000, Expected: 0xc012, Received: 0xffff


Kann mir jemand sagen was das genau bedeutet?

Gruss
Markus

von Karl H. (kbuchegg)


Lesenswert?

> ../Codeschloss5.c:23: warning: (near initialization for `EEMEM')

Du must genauer werden, wenn DU Code uebernimmst:

Das muss heissen:
#ifndef EEMEM

und nicht
#ifdef EEMEM

Das Makro EEMEM soll ja nur dann dann angelegt werden,
wenn es nicht schon angelegt ist.

_attribute__  schreibt sich vorne und hinten mit 2 

von Markus S. (schama)


Lesenswert?

Vielen Dank für die schnelle Antwort.
Juhu..es funktioniert

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
Noch kein Account? Hier anmelden.