In der Interrruptroutine wird vergessen das Statusregister zu sichern und auch das temp Register wird in der ISR und im Hauptprogramm benutzt. Das ist ein Typischer Anfängerfehler der zu ziehmlich unberechenbaren (soweit bei einem Computer möglich) verhalten führen kann. Die typischen interrruptsroutine beginnt daher mit
IN Reg1,SREG und endet mit out SREG,Reg1. Das retten der Register auf den Stack kommt beim Tiny12 mangels RAM kaum in Frage. Man nimmt also seperate Register für die Interrrupts und das Hauptprogram.