www.mikrocontroller.net

Forum: Compiler & IDEs Problem mit static Variable


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Habe folgendes Phänomen:
Benutze die Yagarto-Toolchain für einen LPC2138.
In einer ISR habe ich eine static Variable deklariert. Diese wird auch 
innerhalb dieser ISR verändert.
Das merkwürdige ist, dass sie nicht den Wert hat, den sie haben sollte. 
Nach dem Flashen erhalte ich statt einer 1 beim ersten ISR-Durchgang 
1073741995. Wenn ich den µC dann neu starte hängt er sich auf, d.h. die 
Variable existiert wohl nicht mehr.
Global anlegen bringt das gleiche Ergebnis...
Hat von Euch schonmal jemand so ein Erlebnis gehabt? Oder irgendwelche 
Ideen, was ich anstellen könnte, um es zum funktionieren zu bringen?


Grüße
Hans

Autor: Christoph Mmmmmmm (Firma: privat) (mauralix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normalerweise werden static Variablen immer mit 0 automatisch 
initialisiert.
Kann sein, dass dies bei deinem speziellen Compiler nicht der Fall ist.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kenne es von einem anderen Kompiler noch, dass man schreiben kann:
static char variable = 1;
Werde es mal probieren, die Variable bei 0 starten zu lassen.
Danke für den Tipp!

Hast Du vielleicht auch eine Idee warum ich die Variable nur nach dem 
Flashen verwenden kann und nach einem Reset nicht mehr?

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmals vielen Dank!
Das Problem hat sich erledigt. Die static Variable wird mit 0 
initialisiert und dann erst erhöht. Jetzt klappt es auch nach dem Reset.

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.