Reset Indevido no PA60

Olá amigos,
Estou com problema na interrupção de Timer do PA60. O micro se reinicia o tempo todo. Onde pode estar o problema?
Abraço!
Estou com problema na interrupção de Timer do PA60. O micro se reinicia o tempo todo. Onde pode estar o problema?
- Código: Selecionar todos
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#define buzzer PORT_PTCD_PTCD3
char contaBuzzer=0;
//*******************************Rotinas de temporização**********************************************
void delay_ms(unsigned int tempo) //Função de atraso para "x" milisegundos
{
unsigned int temp;
for (;tempo;tempo--)
{
for(temp=(80000/110);temp;temp--); /* feeds the dog */
__RESET_WATCHDOG();
}
}
//****************************************************************************************************
interrupt VectorNumber_Vmtim0 void MTIM0_ISR(void)
{
MTIM0_SC_TOF = 0;
if(contaBuzzer) {contaBuzzer--; buzzer=1;} else buzzer=0;
}
void Inicializa(void)
{
SYS_SOPT1_RSTPE = 1; //Habilita pino de Reset
SYS_SOPT1_BKGDPE = 1; //Ativa o pino de depuração
PMC_SPMSC2 = 0b01110000; //Configura o LVD
PORT_PTCOE = 0b00001000;
//Configuração da interrupção de Timer
MTIM0_SC_TSTP = 1; /* stop counter */
MTIM0_CLK = 0b010000; /* use FIXED clock ICSFFCLK and prescaler /128 */
MTIM0_MOD = 0; /* must clear MOD register */
MTIM0_SC |= MTIM0_SC_TOF_MASK; /* write MTIMx_SC to clear TOF first */
MTIM0_SC_TOIE = 1; /* then set TOIE bit */
MTIM0_SC_TSTP = 0; /* clear TSTP to start free-running counter */
}
void main(void)
{
DisableInterrupts;
Inicializa();
EnableInterrupts;
/* include your code here */
buzzer=1;
delay_ms(10);
buzzer=0;
//contaBuzzer=1;
for(;;)
{
__RESET_WATCHDOG(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
Abraço!