gleiche Variablen in mehreren Source Dateien verwenden

Gast #180996
Lesenswert?

Hi

Ich habe folgendes Problem:
In der Datei main.c definiere ich folgende Variablen:

const char system1[] PROGMEM = "System running";
const char system2[] PROGMEM = "Suchen nach Geraet";
const char system3[] PROGMEM = "--> Geraet nicht gefunden";
const char system4[] PROGMEM = "--> Geraet gefunden";
PGM_P system[4] PROGMEM = {system1,system2,system3,system4};

nun möchte ich diese Variablen auch in einer anderen Sourcedatei
verwenden.
Egal in welcher Datei ich diese definiere, in der anderen findet er sie
nicht.

Wie kann man dieses Problem lösen?
Ich könnte natürlich die Variablen nochmal definieren - aber das würde
nur den Speicherplatz vermindern und das Ändern von dem Text
umständlicher machen.

Ich hoffe es kann mir jemand helfen.

Ich verwende WinAVR-20040720.
Gast #180997
Lesenswert?

Variablen in der main.h deklarieren. Die main.h dann überall einbinden,
wo die Variablen benötigt werden. Prinzipiell immer in *.c und *.h -
Dateien aufsplitten, so kann man Funktionen und Variablen
dateiübergreifend einfach miteinander verbinden. Im Makefile noch
angeben, welche *.c-Dateien für das Projekt benötigt werden.
Gast #180999
Lesenswert?

Zusätzlicher Kommentar zu Mike.

In der main.h als "extern" deklarieren.

Ich weiss jetzt nicht wie man das mit PGM_P [] PROGMEM macht,
aber generell bei normalen RAM Typen:

In einer header-datei deklarieren.

  extern char *system[];

In einer c-datei definieren

  char *system[} = { "abc", "def", "geh", };

Jetzt kann jede datei die den header included auf system[n] zugreifen.

Die verschieden Speicher-"Typen" der Harvard Architektur des VAR
machen das ganze etwas komplizierter :(

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren