Forum: Mikrocontroller und Digitale Elektronik Array im Eeprom nicht erreichbar


von Martin Sche (Gast)


Lesenswert?

Hallo Leute!

Hab mal wieder ein Problem:

Ich hab in meinem Projekt(in AVR Studio) mehrer C-Files:
main und ref_drive

In der main hab ich ein Array im Eeprom erstellt:
uint16_t eearray[40][10] EEMEM;(steht in keiner Funktion drin, sondern 
frei, außerhalb)

Auf dieses möchte ich jetzt aber auch aus ref-drive zugreifen.
z.B. durch:
eeprom_write_block(&zc_array,&eearray,40*10*sizeof(uint16_t));


Dort sagt er aber, dass er eearray nicht kennt.In der main klappt das.
Wie und wo muss ich dann das array noch mal deklarieren oder geht das so 
gar nicht?


Vielen Dank!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das geht mit einer /extern/-Deklaration:

extern uint16_t eearray[][];

von Martin Sche (Gast)


Lesenswert?

ah ok. jetzt kommt der Fehler nicht mehr, aber nach wie vor eine 
Warnung:

../ref_drive.c:54: warning: passing argument 1 of 'eeprom_write_block' 
discards qualifiers from pointer target type

bei der Zeile
eeprom_write_block(&zc_array,&eearray,40*p*sizeof(uint16_t));


Den Fehler versteh ich irgendwie nicht... in der main stehts genauso, 
aber keine warnung...?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dann hänge noch "EEMEM" an die extern-Deklaration an; vermutlich ist der 
Prototyp der Funktion eeprom_write_block so deklariert, daß sie einen 
entsprechenden Pointer erwartet.

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.