Forum: Mikrocontroller und Digitale Elektronik Pronblem mit Code für Tiny25


von Steffen Graap (Gast)


Lesenswert?

Hallo

Ich habe in Eclipse/WINAVR folgenden Code geschrieben.
1
asm ("cli");
2
u16Spannung = u16ISRSpannung;      //Wert sicher übernehmen
3
asm ("sei");

Im s-File kommt dabei folgendes raus.
1
/* #APP */
2
cli
3
sei
4
/* #NOAPP */

woran liegt das?

Danke Steffen

von Karl H. (kbuchegg)


Lesenswert?

Kann es sein, dass du in weiterer Folge mit
u16Spannung gar nichts mehr machst?

Die andere Alternative ist, dass der Optimizer die Zuweisung
an eine andere Stelle verschoben hat, weil das seiner Meinung
nach ok ist.

von Steffen Graap (Gast)


Lesenswert?

Habe die Fehler gefunden

Bei dem oben beschriebenen Beispiel lag es daran, das u16ISRSpannung im 
Interrupt benutz wird und damit mit volatile deklariert werden musste.

In einem anderem Fall wurde das Ergebnis einer Funktion, (noch) nicht 
verwendet, und dadurch die ganze Funktion rausoptimiert. !Böser 
Optimierer!

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.