Globale Variablen in MPLABX

OP #3469996
Hallo,

ich verzweifle gerade ein wenig bei MPLABx mit globalen Variablen bzw. 
mit globalen Variablen, die einen selbstdefinierten Typ aufweisen.

Als Bsp:

Mein Projekt besteht aus main.c und dann noch zusätzlich aus dummy.c und 
dummy.h
In dummy.h habe ich den Typ definiert:
1
//dummy Typedef
2
typedef struct
3
{
4
bool a;
5
bool b;
6
uint8_t c;
7
}dummy_t;
8

9
extern dummy_t dummy; //dummy global

In dummy.c habe ich dann die Variable deklariert:
1
dummy_t dummy;

Nun möchte ich auf die Variable Dummy in main.c zugreifen. In dieser ist 
dummy.h eingebunden.
1
#include "dummy.h"
2
.
3
.
4
.
5
int main(int argc, char** argv) {
6
.
7
.
8
.
9
dummy.c = 25;
10
.
11
.
12
.
13
}

Während ich den Programmcode schreibe, wird mir die Variable dummy in 
main.c sogar von MPLABX vorgeschlagen (Ctrl + Leertaste). Sobald ich 
jedoch builde, spuckt mir der Compiler für main.c eine Fehlermeldung für 
jede Zeile, in der ich auf dummy zugreife, aus:

error: (192) undefined identifier "dummy"
error: (196) struct/union required

Von Keil uVision bin ich es gewohnt, Variablen nach diesem Prinzp nutzen 
zu können. Da gibt es keine Probleme.
Weiß jemand wo das Problem bei  MPLABX liegt?

Ich programmiere übrigens einen PIC16F1825. Als Compiler nutze ich den 
XC8.

Vielen Dank schonmal für die Hilfe.

Gruß Philipp
OP
Ich habe es zum Laufen bekommen. Eigentlich war alles richtig.
Jedoch hatte ich ein meinem Quellcode vorher noch für Testzwecke ein 
Struct definiert, das dummerweise den gleichen Namen, wie das typedef 
hat. Wie es die Schusselei so will, habe ich natürlich vergessen das 
Struct wieder zu löschen und dadurch kam es zu einem Namenkonflikt. 
Jetzt klappt alles.

Danke dennoch für die Hilfe.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.