Hallo
So vielleicht:
volatile int Dauer=0;
"Eine zweite Schwierigkeit ergibt sich, wenn der Compiler den Code optimiert. Bei normalem Programmfluss kann der Compiler ausnutzen das einige Ausdrücke konstant bleiben, oder Variablen nicht ins SRAM schreiben, sondern nur in den Registern belassen. Durch die Interrupts gehen diese Voraussetzungen verloren und viele Optimierungen können nicht mehr durchgeführt werden, oder liefern nicht mehr lauffähigen Code. Um den Compiler darauf hinzuweisen gibt es das Schlüsselwort volatile. Damit werden Variablen gekennzeichnet die sich anders als durch den normalen Programmfluss verändern können. Das sind typischerweise Variablen die im Hauptprogramm und in einer ISR benutzt werden. Wenn ein Programm nur ohne Optimierung lauffähig ist, ist oft ein fehlendes volatile die Ursache."
(Zitat aus http://www.rn-wissen.de/index.php/C-...Programmierung)
http://de.wikibooks.org/wiki/C-Progr...6_Co.#volatile
http://tigcc.ticalc.org/doc/keywords.html#volatile
Gruß
mic
Lesezeichen