Forum: Compiler & IDEs Problem mit static Variable


von Hans (Gast)


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

von Christoph M. (Firma: privat) (mauralix)


Lesenswert?

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

von Hans (Gast)


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?

von Hans (Gast)


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.

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.