Was genau passiert wenn ich eine variable mit volatile ausserhalb einer funktion definiere? Konkret: volatile unsigned char lcd_menue_control; <--Steht ausserhalb von main() lcd_menue_control wird inerhalb eines Interrupts verändert. Danach kann ich in Main die Veränderung feststellen, aber in einer von main() aufgerufenen Funktion ist die Änderung wieder weg??? heisst volatile nicht soviel wie global?
Hi volatile bedeutet das compiler nicht an dieser Variable herumoptimieren soll. Der Compiler könnte z.B. bei char i=4; while(i); die while-Schleife wegoptimieren. Deklarierst du die Variable i aber volatile sagst du damit dem Compiler die Variable kann sich aus aus ihm nicht ersichtlichen Gründen (INT, Timer usw.) ändern und dann verzichtet er auf obige optimierungen. Ohne deinen Sourcecode zu kennen kann ich dir aber auch nicht genauer helfen. Matthias
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.