为什么dsPIC30F4012会复位?

时间:2012-03-09 01:05:16

标签: pic

我有一个带有dsPIC30F4012的小电路,有时它工作正常,但有时没有任何理由随机重置回程序的开始。

由3V MCLR供电,具有10k电阻

一些设置:

_FOSC(CSW_FSCM_OFF & FRC_PLL4 & CSW_ON_FSCM_OFF & CSW_FSCM_OFF); 
_FWDT(WDT_OFF); 
_FBORPOR(PBOR_OFF & MCLR_DIS & PWRT_OFF & BORV20);
_FGS(CODE_PROT_OFF & GWRP_OFF); 

#define TMR1_PERIOD 7369

{
TMR1 = 0; /* clear timer1 register */
PR1 = TMR1_PERIOD; /* set period1 register */
T1CONbits.TCS = 0; /* set internal clock source */
IPC0bits.T1IP = 4; /* set priority level */
IFS0bits.T1IF = 0; /* clear interrupt flag */
IEC0bits.T1IE = 1; /* enable interrupts */
SRbits.IPL = 3; /* enable CPU priority levels 4-7 */
T1CONbits.TON = 1; /* start the timer */
}


/****** START OF INTERRUPT SERVICE ROUTINES *********/

void __attribute__((__interrupt__, __shadow__, __no_auto_psv__ )) _T1Interrupt(void) 
{
Timer1 ++;
Timer2 ++;
Timer3 ++;
Timer4 ++;
MainCounter++;
IFS0bits.T1IF = 0; /* clear interrupt flag */
return;
}           

1 个答案:

答案 0 :(得分:0)

RESET 可以调用处理器,原因如下:启动电源复位信号输入/ MCLR WDT溢出

注意:在 Timer0 WDT 之间切换预分频器之前,建议使用模块 TMR0和WDT重置,否则可能是意外(无意)重置处理器。

检查出来。