AnsweredAssumed Answered

9S12G128单片机 看门狗复位后单片机死机,麻烦看一下什么原因?

Question asked by 亮 符 on Apr 17, 2015

9S12G128单片机 看门狗复位后单片机死机,麻烦看一下什么原因?


程序配置如下:

1、时钟配置,外部晶振12MHZ:

void Clock_Init(void)

{

    CPMUOSC = 0x80;     // 使能外部晶振

    CPMUSYNR = 0x58;    /* VCOFRQ=0, SYNDIV=24 */

    CPMUREFDIV = 0x0b;  /* REFFRQ=1, REFDIV=9 */

    CPMUPOSTDIV = 0x00; /* POSTDIV=0 fpll=fvco=50M*/

    while(CPMU标志寄存器_LOCK == 0);

    CPMUCLKS = 0x80;    /* fbus=fpll*0.5, RTI & COP running from IRCCLK */

   

}

2、看门狗配置:

void EnableCOP(void) {

 

     //CPMUCOP=0x01;  //1.3ms

     //CPMUCOP=0x02;  //5.4ms

     CPMUCOP=0x03;  //22.2ms

    

 

}        

 

void FeedWatchDog(void)

   {

        //喂看门狗

        CPMUARMCOP = 0x55;

        CPMUARMCOP = 0xAA;

   }      

3主程序:

void main(void) {

  /* put your own code here */

 

     Clock_Init();  //总线时钟25MHZ

   //  capture_init();

     SCIInit();

     EnableCOP(); //启动看门狗功能

   // flagx=flagy=i=j=0;

 

        EnableInterrupts;

       

        FeedWatchDog();

 

  SCIsend1(0x11);

  SCIsend1(0x22);

        FeedWatchDog();

 

  for(;;) {

 

  }

  程序设计逻辑:

上电后串口发出11、22;待看门狗溢出后导致单片机复位,串口再次发出11、22,如此循环。

实际测试情况:

上电后串口发出11、22;待到看门狗溢出时间后,单片机死机,

分析:

查看寄存器:0x0037 CPMU标志寄存器寄存器对应位UPOSC报故障。

 

以上情况,麻烦各位看一下,是什么原因造成?是寄存器没配置吗?有没有相关配置历程,谢谢!

Outcomes