Gast
#39777
Mir fiel folgendes Problem auf: ich definiere eine globale 16bit-Variable per static volatile unsigned char xy; Nun wird im z.B. im Timer0-Interrupt eine Messung ausgefuehrt, deren Ergebnis in xy landet. Das Hauptprogramm soll diese nun auswerten und holt sich das Ergebnis per wert = xy; dies wird uebersetzt in lds r24, xy lds r25, (xy)+1 Was passiert nun, falls der Interrupt genau zwischen diesen beiden Befehlen auftritt und xy veraendert, bekommt das Hauptprogramm dann den halben alten und den halben neuen Wert? Was waere ein moeglicher Workaround, Interrupt waehrend des Werte-holens abschalten oder lock bits? Gruss!