приведу кусок кода чтобы было понятнее:
*IMR = 0x0002; //int2
*EVAIMRA = 0x0100; //прерывание T1CINT
asm(" CLRC INTM");
........
interrupt void int2_isr(void)
{
i++; //счетчик для проверки как работает обработка прерывания
*EVAIFRA = *EVAIFRA & 0x0100; //снимаем прерывание
}
проблема заключается в том что обработчик выполняется только один раз, хотя должен каждый раз когда возникает прерывание. Прерывания есть - это я проверил.