Estoy usando timer1 en DSPIC30f4011 para generar una interrupción cada milisegundo. Sin embargo, el ISR del temporizador 1 no se ejecuta cada vez en POR (2 de cada 10 veces). Si enciendo el chip y uso MCLR (cambiarlo a alto o bajo), el temporizador funcionará cada vez que se reinicie MCLR . ¿Hay algo que deba aclarar en el software? Ya reinicié la marca del temporizador 1.
unsigned char t2=0;
unsigned char t1=0;
unsigned char t0=0;
void main() {
ADPCFG=0xff;
//timer1 setting##########
T1IF_bit= 0; //clear flag
IEC0.T1IE = 1; //enable timer1 interrupt
IPC0=0b0100000000000000; //priority
PR1 = 7373; //load
//###########
UART2_Init(115200); //output something to computer
////////
T1CON.TON=1; ///start timer1
////////
while(1){
UART_Write(t2);
UART_Write(t1);
UART_Write(t0);
}
}
void Timer1Interrupt() iv IVT_ADDR_T1INTERRUPT{
T1IF_bit= 0; //clear the flag
t0++; //increment something
if(t0==255){t1++;}
if(t1==255){t2++;}
}