Forum: Mikrocontroller und Digitale Elektronik Globalebariabel im Header


von Egli Matthias (Gast)


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.

von OhneGlaskugel (Gast)


Lesenswert?

Egli Matthias schrieb:
> In der ISR wird die Remotewahl gesetzt. Aber wenn es in das Main
> zurückspringt, setzt sich die Remotewahl automatisch wider auf 0.

WasWieWo? (Code zeigen)

von Egli Matthias (Gast)


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.

von Peter (Gast)


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

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.