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