Globalebariabel im Header

Gast #2058033
Lesenswert?

In meiner ISR lese ich einen Remotecode aus. Welchen ich anschliessend 
an das Main übergeben will.

#ifndef GLOBAL_REMOTEWAHL
#define GLOBAL_REMOTEWAHL

typedef enum
{
KBEF = 0,
EA,
MINUS,
PLUS,
RECHTS,
RECHTSL,
LINKS,
LINKSL,
PAUSE
}Remote_Wahl;

#ifdef MAIN

volatile Remote_Wahl RemoteWahl;

#else

volatile extern Remote_Wahl RemoteWahl;

#endif
#endif

In der ISR wird die Remotewahl gesetzt. Aber wenn es in das Main 
zurückspringt, setzt sich die Remotewahl automatisch wider auf 0.
An was könnte das liegen? Danke für die schnelle Antwort.
Gast #2058046
Lesenswert?

Hallo Glaskugel

Ich kann mit dem Debugger sehen das vor verlassen der ISR die Remotewahl 
auf 0x0001 steht und danach 0x0000. Der eigentliche Code ist ja 
irrelevant da der Wert im Main gespeichert wird und durch extern dort 
darauf zugegriffen wird.
Gast #2058052
Lesenswert?

Egli Matthias schrieb:
> Ich kann mit dem Debugger sehen das vor verlassen der ISR die Remotewahl
> auf 0x0001 steht und danach 0x0000.

bist du sicher das die die gleiche variabel anschaust - lass dir mal die 
Adresse der Variable anzeigen.

> Der eigentliche Code ist ja irrelevant
also wenn ich soetwas sehen dann will ich mehr sehen

> #ifdef MAIN
> volatile Remote_Wahl RemoteWahl;
> #else

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