Ami így első blikkre: amit főprogramban és interruptban használt változókat volatilenek kell deklarálni.
AVR libcben van makró a globális megszakítások tiltására, engedélyezésére. sei() cli(), ezek az SREG I bitjét FIXME setelik, clearelik.
Édesanyám azt tanította, hogy az ISR-ek rövidek legyenek, az elején cli(), a végén pedig sei() vel. Ez sok szopástól megkímél.
Attól, hogy a globális interruptokat letiltod, a flagek beállnak, és az interrupt elhagyásával sorra hívódnak meg a közben beállt flagű ISR-ek.