www.mikrocontroller.net

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


Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja

Autor: Use the f*cking search engine! (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beitrag "C-Frage: Was ist volatile?"
Beitrag "Was bedeutet "volatile"?"
oder auch
http://www.mikrocontroller.net/forum/mikrocontroll...

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).

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Anonymous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Introduction to the Volatile Keyword:
http://www.embedded.com/story/OEG20010615S0107

  *

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.