Forum: Mikrocontroller und Digitale Elektronik Erklärung von "volatile"


von Micha (Gast)


Lesenswert?

Mir ist noch nicht ganz klar wozu man volatile benutzt, aber ich habe 
folgende Idee:
Ich habe ein Register, auf das ich per Software zugreifen kann und so 
dessen Wert verändern kann! Zudem kann ich auf dieses Register per 
Hardware, beispielsweise per Knopfdruck, zugreifen und so dessen Wert 
verändern! Nun benutzt man volatile, um dem Compiler mitzuteilen, dass 
dieses Register nicht unbedingt von der Software verändert werden muss 
und dass er dieses Register immer neu auslesen muss und nicht irgendwo 
in einem tempöraren Register zwischenspeichern darf!
Ist das so richtig?

von Falk B. (falk)


Lesenswert?

Ja

von Use the f*cking search engine! (Gast)


Lesenswert?

Beitrag "C-Frage: Was ist volatile?"
Beitrag "Was bedeutet "volatile"?"
oder auch
http://www.mikrocontroller.net/forum/mikrocontroller-elektronik?filter=volatile

Desweiteren wäre dieser Thread im GCC-Unterforum wesentlich besser 
aufgehoben.

>Zudem kann ich auf dieses Register per Hardware, beispielsweise per >Knopfdruck, 
zugreifen und so dessen Wert verändern!

Man kann nicht per Hardware auf Register zugreifen.

volatile wird genutzt, wenn der Compiler nicht wissen kann, dass die 
Variable inzwischen geändert hat/haben könnte(zB in einer 
Interruptroutine).

von Falk B. (falk)


Lesenswert?

@ Use the f*cking search engine! (Gast)

>Man kann nicht per Hardware auf Register zugreifen.

Aber sicher! PINx, Timer, UART, praktisch ALLE SFRs.

MFg
Falk

von Anonymous (Gast)


Lesenswert?

Introduction to the Volatile Keyword:
http://www.embedded.com/story/OEG20010615S0107

  *

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.