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:
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