LØST rotary encoder og trykknap

Hvad får du på Serial-monitor? Som jeg læser koden så skulle den sprøjte "number" hvert øjeblik den ikke er det samme som oldnumber. Passer det? Hvis ikke så er din logic med at se om encoderen drejer højre eller venstre om forkert (jeg har ikke helt gjort mig umagen at genemskue den)

Er den her encoder noget der skifter ofte/hurtigt? Interrupts bør holdes til ting som går sk.. hurtigt. Du begår to "fejl" (der gør koden usikker og random under visse betingelser) Når man læser en variable (andet end enkel bytes) som bliver modificeret i en ISR bør man disable interrupts i det tidsrum. En ISR skal være færdig hurtig, man skal ikke putte delay i dem. En ISR blokkerer andre ISR (lang liste af priotitet snillersnaller udeladt) Sidste men ikke mindst (ja, en 3. ting) laver du Serial.print in din ISR. Det går godt (ikke den gamle IDE022) fordi Serial kun putter din streng i en buffer og så er det lutter interrupts der putter den ud på linjen, men det er også en skidt ting at gøre.

Eller er det nogen som en person drejer? Så skulle der være rigelig tid at læse encoderen i loop med lidt polling (så længe du holder dig fra delay af enhver art og kun bruger timers)

Nåh - til Du skriver at "den virker" - du får et number. Men "number" bliver jo løbende ændret - en af de ting ISR'en gør for dig. Da du ikke udskriver oldnumber ved vi ikke hvad det er den modtager.