mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Globalebariabel im Header


Autor: Egli Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: OhneGlaskugel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Egli Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.