Hallo RedBaron,

Die Lösung zum Problem mit 'uiMeinZahler' liegt im Schlüsselwort 'volatile'. Wenn eine Variable als 'volatile' gekennzeichnet ist, geht der Compiler davon aus, dass sich der Wert asynchron zum eigentlichen Programmfaden (thread) ändert (also z.B. durch einen zwischendurch aufgetauchten Interrupt). Der Variablenwert wird deshalb bei jedem Zugriff erneut aus dem Speicher geladen.
Wie erklarst du denn dass ein volatile variabele benutzt werden soll in main() wenn mann die variabele standig in main() abfragen will und wenn mann dieselben variabele in einen Interrupt function andert?

Was ist met der Wert gemeint? Die Wert vom C-variabele oder die Wert vom Register die fur die C-variabele vom Assembler dafur benutzt wird?

Ich meine:

Vorbild:
unsigned char MeinVar;
MeinVar=0x33;

Da wird vom Assembler irgend ein Register (z.B. R16) benutzt um die 0x33 darin zu speichern.

Ich denke, wenn nicht als 'volatile' deklariert, dann wird in main() Register R16 abgefragt und nicht die MeinVar variabele.

Was meinst du davon?

gruss

Henk