У вас прерывание единственное?
Когда несколько прерываний с разными приоритетами, нужно учитывать возможность вклинивания более приоритетного прерывания между извлечением статуса из стека и восстановлением статуса. Я на выходах из прерываний использую такую конструкцию:
Код
POP r16
CLI
POP ac_tmp
OUT CPU_SREG,ac_tmp;restore Status register
RETI