Forum: Mikrocontroller und Digitale Elektronik Werte im EEPROM definieren


von Siegfried S. (dieleena)


Lesenswert?

Hallo,
PIC18F2580; MPLAP; C18;
möchte Werte im EEPROM definieren, die im Sourcecode liegen. Leider 
finde ich in der Hilfe von C18 kein Beispiel.
Für MPLAP-Assembler habe ich folgendes.
DBE  MACRO block, ofs, value
org h'2100'
DE  value
ENDM

DBE  1,  MAX,  MIN
....

END

Benötige Hilfe, um dieses mit dem C18 Compiler zu erstellen.

Gruß Siegfried

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
habe folgendes gefunden und es in den Sourcecode *.h eines PIC18F4680 
eingebunden.

#pragma romdata eedata_scn=0xf00000
rom eedata_values[8] = {0, 1, 2, 3, 4, 5, 6, 7};
#pragma romdata

Funktioniert Prima.

Habe es auch in den Sourcecode eines 18F258 eingebunden. Jedoch bekomme 
ich eine Fehlermeldung.

Error - section 'eedata_scn' type is non-overlay and absolute but occurs 
in more than one input file.

Kann damit nicht anfangen

An beiden *.lkr habe ich keine Änderung vorgenommen.

Gruß Siegfried

von holger (Gast)


Lesenswert?

So wie es da steht gehört das nicht in eine Headerdatei.
Schreib es in genau eine *.c Datei, dann sollte keine
Fehlermeldung mehr kommen.

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
Code in eine *.c eingefügt. kein Fehler
aber
die paar Zeichen tauchen nicht im EEProm auf.

beim 18F4680 funktioniert es.

Gruß Siegfried

von holger (Gast)


Lesenswert?

>Code in eine *.c eingefügt. kein Fehler

In welche *.c Datei? Wird die beim Projekt auch mit compiliert?

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
war mein Fehler (Kopierfehler)
habe "myEeprom" vor "rom eedata_values[8] = {0, 1, 2, 3, 4, 5, 6, 7};" 
stehen.
Datei ist komplett eingebunden.
Hat du eine erklärung, warum bei 18F4680 in der *.h und bei 18F258 in 
der *.c ?
für die Infos vielen Dank.
Gruß Siegfried

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.