Hallo,
ist vermutlich wirklich ein Fehler in der AsuroLib. Die Variable switched muß als volatile deklariert sein, da sie in einer Interrupt Routine geändert werden kann.
Probier mal folgende Änderungenin der Lib vorzunehmen. Ich kann es leider derzeit selbst nicht testen. Die AsuroLib muß anschließend neu übersetzt und ins avr/lib Verzeichnis kopiert werden.
Im File asuro.h:
Code:
extern volatile int switched;
Im File globals.c:
Code:
volatile int switched;
Das gleiche trifft übrigens auch für die Variabale encoder zu.
Lesezeichen