乐天派 发表于 2015-11-27 15:27:28

飞思卡尔9S12单片机开看门狗喂狗情况下依然死机

今天测试了一段代码,在主程序中开启看门狗,蜂鸣器快速报警几声之后,进入while循环,在大循环中不断喂狗,定时器中开启关断蜂鸣器,蜂鸣器较之前变慢。上电后,运行正常。但加入较强的电磁干扰后,程序出现死机,一直未复位。我用的单片机是飞思卡尔的MC9S12XHY128,程序如下:

void main(void)
{
unsigned int cnt=0,i=0;
CPMU_PEE_32MHz();

COPCTL_WCOP=0;   // 开启看门狗
COPCTL_RSBCK=0;
COPCTL_CR=7;

DDRP_DDRP0=1; //蜂鸣器IO口设为输出模式

BUZZ=1;
Delay(50000);
   BUZZ=0;
Delay(50000);
   BUZZ=1;
Delay(50000);
   BUZZ=0;
Delay(50000);
   BUZZ=1;
Delay(50000);
   BUZZ=0;
Delay(50000);

Time_Config();
EnableInterrupts;

for(;;)
{       
       
    _FEED_COP();      //喂狗指令
   
}

}



interrupt 42 void timer1_2_ISR(void)   // 50ms 中断
{
word Counter_Value;
static char CNT=0;

TIM1_TFLG1_C2F=1; //Clear channel 2 flag
TIM1_TC2 = (word)(Counter_Value + 50000);   


if(CNT>=15)   // 750ms 定时到
{
BUZZ=!BUZZ;
CNT=0;

}

}

yuanbuqi 发表于 2015-12-27 14:05:03

查看复位管脚有没问题
页: [1]
查看完整版本: 飞思卡尔9S12单片机开看门狗喂狗情况下依然死机