Я когдато писал для исключительно для интереса, вот код:
NAME EXT_INT1
#include "iom8535.h"
extern c_T2
COMMON INTVEC(2) ; Code in interrupt vector segment
ORG TIMER2_COMP_vect ; Place code at interrupt vector
RJMP c_T2 ; Jump to assembler interrupt function
ENDMOD
;The interrupt vector code performs a jump to the
function c_T2,2
NAME c_T2
#include "iom8535.h"
PUBLIC c_T2 ; Symbols to be exported to C function
RSEG CODE ; This code is relocatable, RSEG
c_T2:
ST -Y,R17
st -Y,R16 ; Push used registers on stack
in R16,SREG ; Read status register
st -Y,R16 ; Push Status register
in r16,OCR2;
ldi r17,10
add r16,r17;
out OCR2,r16;
mov r16,r15;
ori r16,0x02;
mov r15,r16;
ld R16,Y+ ; Pop status register
out SREG,R16 ; Store status register
ld R16,Y+ ; Pop Register R16
ld R17,Y+ ;
reti
END
а вообще рекомендую ознакомиться с AVR034 на сайте Атмела

Там всё достаточно понятно описано.