Пытаюсь сгенерировать прерывание от таймера в симуляторе. Почему то код не работает. Код с мануала.
Инициализация таймера 2
Код
void Timer2Init(void)
{
T2CON = 0x0;
T2CONbits.TCKPS = 0x02;
TMR2 = 0x0;
PR2 = 0xFF;
IPC2SET = 0x0000000C;
IPC2SET = 0x00000001;
IFS0bits.T2IF = 0x0; // сброс флага
IEC0bits.T2IE = 0x1; // разрешить прерывание
T2CONbits.ON = 1;
}
{
T2CON = 0x0;
T2CONbits.TCKPS = 0x02;
TMR2 = 0x0;
PR2 = 0xFF;
IPC2SET = 0x0000000C;
IPC2SET = 0x00000001;
IFS0bits.T2IF = 0x0; // сброс флага
IEC0bits.T2IE = 0x1; // разрешить прерывание
T2CONbits.ON = 1;
}
Тело прерывания
Код
void __ISR(_TIMER_2_VECTOR,IPL3)Timer2Handler(void)
{
LATAbits.LATA12 = ~LATAbits.LATA12;
IFS0bits.T2IF = 0x0; // Be sure to clear the Timer1 interrupt status
}
{
LATAbits.LATA12 = ~LATAbits.LATA12;
IFS0bits.T2IF = 0x0; // Be sure to clear the Timer1 interrupt status
}
Что еще нужно для прерывания?