Globale Variablen in MPLABX

OP #3469996
Lesenswert?
• ▲
▼
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 #3475349
Lesenswert?
• ▲
▼
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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.