Написал программу для проверки работы прерываний таймера TMR1, почему то прерывание не работает вот листинг
#include <p24fj128ga010.h>
void __attribute__((__interrupt__, auto_psv)) _T1Interrupt(void) { if (IFS0bits.T1IF) { IFS0bits.T1IF = 0; PORTA++; } }
int main (void) { PORTA = 0; LATA = 0; TRISA = 0; T1CON = 0b0000000001010000; PR1 = 0; TMR1 = 0; T1CONbits.TON=1; IEC0bits.T1IE = 1; IFS0bits.T1IF = 0; IPC0bits.T1IP0 = 1; IPC0bits.T1IP1 = 1; IPC0bits.T1IP2 = 1; while(1); return 0; }
Программа должна при каждом прерывании добавлять единичку в регистр PORTA; Ни на плате ни на симуляторе не работает. Может быть надо как то глобально разрешить прерывания ? хотя как я понял в 24х это стоит по умолчанию
У кого есть опыт работы с пик24 подскажите подалуйста, в чем тут дело.
|