Thomas G. schrieb:
> Das mit dem volatile versteh ich nicht meine Variablen veränder ich nur
> in der Main und nicht in einer ISR wieso müssen die dann volatile sein ?
Wo du sie veränderst, ist völlig WURSCHT! Du benutzt sie in der ISR und
in der Main, also brauchst du volatile.
> Ich hab mir gedacht wenn die in der ISR ein Flag setzte das ich in der
> Main auswerte dann dauert das doch bestimmt länger bis es ausgeführt
> wird als die Zeit in der Main zu berechnen und wenn der Zeitpunkt
> gekommen ist einfach die ziffern zu aktualisieren.
Eine Warteschleife in der ISR blockiert aber den kompletten Prozessor.
Für das beste Zeitverhalten sind ISRs, die möglichst schnell wieder
zurückkehren, immer von Vorteil.
> also sagt volatile dem Compiler noch das er die Variable ne optimieren
> soll ?
volatile sagt dem Compiler, daß die Variable evtl. außerhalb des
normalen Programmablaufs gelesen oder geschrieben werden könnte und
deshalb alle Zugriffe auf diese auch tatsächlich auch dort, wo sie im
Code stehen, ausgeführt werden müssen.