это я по аналогии с Вашим, взял свой
вот и вся разница
как ослика не назови, все равно повезет куда надо
и затем вписывать косвенные прыжки на метки соответствующие??что такое - Interrupt Vectors - Вектора Прерываний? А это ни что иное, как указатели на адрес ПЗУ, на который мы переходим в результате прерывания.Все векторы расположены в самом начале адресного пространства, и занимают первые 11 адресов ПЗУ (с $000 по $00A). Это прекрасно видно из таблицы. То есть, если мы, скажем, хотим активизировать прерывание Timer1_comp1, то мы должны по адресу $004 поставить ссылку на подпрограмму - обработчик этого прерывания. А вообще, лучше расставить в начале программы ссылки на все прерывания
Код: Выделить всё
.org 0x1C00
TIMER1_COMPA:
cli
ldi Temp0,0 ;îáíóëåíèå òàéìåðà
out TCNT1H,Temp0
out TCNT1L,Temp0
call Start
sei
retiКод: Выделить всё
.cseg ;íà÷àëî ïðîãðàììíîãî ñåãìåíòà
.org 0 ;íà÷àëüíûé àäðåñ 0
jmp Reset ;ññûëêè íà ïðåðûâàíèÿ
jmp EXT_INT0 ; External Interrupt Request 0
jmp EXT_INT1 ; External Interrupt Request 1
jmp EXT_INT2 ; External Interrupt Request 2
jmp PC_INT0 ; Pin Change Interrupt Request 0
jmp PC_INT1
jmp TIMER3_CAPT
jmp TIMER3_COMPA
jmp TIMER3_COMPB
jmp TIMER3_OVF
jmp TIMER2_COMP
jmp TIMER2_OVF
jmp TIMER1_CAPT
jmp TIMER1_COMPA