Forum: Mikrocontroller und Digitale Elektronik C und Variablenübergabe


von Florian - der Flo - Scharf (Gast)


Lesenswert?

Hi ..

Ich hab folgendes Problem, ich will einem Mikrocontroller (Motorola
DSP56F807, mal was anderes g) eine Menüstruktur per C einimpfen. Dazu
hat mir das SDK eine main.c und eine event.c gebaut, wobei in letzterer
die ganzen Interrupts wie z.b. "Taste ENTER gedrückt" stehen. Wie
bekomm ich jetzt die Information aus der event.c in die main.c? Wenn
ich in main.c eine globale Variable (brrr) definiere, kennt event.c die
ja nicht.

Thx,

der Flo

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hi Flo

wieso soll das nicht gehen:

int data;

void isr( void ) //weiß nicht weiß das heisen muß
{

  data = portxy;
}

void main( void )
{
   if( data == ... )

}

Gerhard

von Florian - der Flo - Scharf (Gast)


Lesenswert?

Hi Gerhard,
naja, die ISRs stehen ja nicht in der main.c, sondern in einer
eigenständigen event.c, von der ich logischerweise keinen Zugriff auf
die Struktur und die Variablen der main.c habe :(


der Flo

von Gerhard Gunzelmann (Gast)


Lesenswert?

ok

dann wird int data in main.c deklariert und in event.c heißt es:

void isr(void)
{
   extern int data;
..

}

Gerhard

von Florian - der Flo - Scharf (Gast)


Lesenswert?

Ah, das "extern" war der Knackpunkt. Ich wusste nicht, dass das geht
:)

Thx, der Flo

von Stefan Kleinwort (Gast)


Lesenswert?

Sauberer erstellst Du eine event.h, in der (u.a.)

extern int meine_globale_variable;

definiert ist. Diese event.h kannst Du dann in main.c einbinden. Am
Besten auch in event.c einbinden, dann fallen Fehler sofort auf (falls
man die Variablen oder Funktionen mal abändert).

Stefan

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.