Forum: Compiler & IDEs EEMEM in mehreren C Dateien verwenden


von Krulle (Gast)


Lesenswert?

Hallo Leute,

wie kann ich mein Programm so aufbauen, dass Variablen die mit dem 
EEPROM interagieren sollen und mit dem Makro EEMEM deklariert sind, über 
mehrere .c-Dateien nutzen kann?
Ich möchte die EEMEM-Variablen gerne in einer header-Datei deklarieren. 
Geht das?

Vielen Dank!

von Bastler (Gast)


Lesenswert?

Warum nicht wie ohne EEMEM Attribute, einfach im Header "extern" 
deklarieren und dann in einem der C-File ohne "extern" "anlegen"?

von Ursus P. (unwichtig)


Lesenswert?

#include<deine_variablen.h> <-- in jeder c datei wo du deine EEPROM 
Daten brauchst. Und dann über eine Funktion auslesen die du in 
deine_variable.h schreibst.

von Walter T. (nicolas)


Lesenswert?

Krulle schrieb:
> Geht das?

Ich weiß nicht, ob das überhaupt eine gute Idee ist. Bei meine Projekten 
achte ich immer darauf, Konfigurationsdaten in einem einzigen Struct 
aufzubewahren, das wiederum nur in einer einzelnen Funktion aus dem 
EEPROM gelesen und in einer andereren geschrieben wird. Ansonsten werden 
von allen anderen Funktion nur die in diesem struct "gespiegelten" 
EEPROM-Daten genutzt. Nebenbei hat das natürlich den Vorteil, daß man in 
Kenntnis der Struktur dieses Structs aus einem EEPROM-Dump direkt den 
Inhalt interpretieren kann, aber der Hauptvorteil liegt meines Erachtens 
darin, daß man vor dem Beschreiben des EEPROMs noch einmal einen 
Plausibilitätscheck an zentraler Stelle machen kann (das struct hat z.B. 
am Ende noch einen CRC).

: Bearbeitet durch User
von Krulle (Gast)


Lesenswert?

Für die Nachfolgenden:
Mit
1
EXTERN uint8_t EEMEM Variablenname;
in einer Header-Datei habe ich es nun hinbekommen.

Vielen Dank für die Hilfe.

von Bastler (Gast)


Lesenswert?

Wobei EXTERN nur ein Macro ist, das "extern", das C-Schlüsselwort 
hinschreibt. Damit kann man z.B. In einem C-File vor den #include des 
H-Files ein "#define EXTERN " platzieren und die Varable wird existent. 
Kann aber auch daneben gehen. Besser im H-File alles extern und im 
Haupt-C-File oder einem speziellen zur Definition globaler Variablen 
nochmal ohne extern deklarieren.

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.