打印
[8/16-bit MCU]

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

[复制链接]
3085|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fl373410295|  楼主 | 2015-4-17 10:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序配置如下:
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报故障。

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

相关帖子

沙发
FSL_TICS_ZJJ| | 2015-4-17 14:30 | 只看该作者
非常感谢你的技术问题。非常抱歉中国没有16位单片机方面的技术专家。请您在飞思卡尔的英文论坛提交请求。网址是https://community.freescale.com/welcome 谢谢。

使用特权

评论回复
板凳
飞翔的蒲公英11| | 2015-5-14 14:37 | 只看该作者
我是新手个人意见
你主程序的发送程序和feed程序为什么不写到loop里   不写到loop里面怎么循环?执行一次单片机复位就完了吧

使用特权

评论回复
地板
zpithpl| | 2016-12-12 16:04 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-4-17 14:30
非常感谢你的技术问题。非常抱歉中国没有16位单片机方面的技术专家。请您在飞思卡尔的英文论坛提交请求。网 ...

比较头疼,我也用的16位单片机,遇到不少疑问

使用特权

评论回复
5
fl373410295|  楼主 | 2017-3-27 14:18 | 只看该作者
问题已经解决,由于外部阻容复位电路取值不对造成单片机无法完成复位。

使用特权

评论回复
6
mochou| | 2018-7-27 11:40 | 只看该作者
fl373410295 发表于 2017-3-27 14:18
问题已经解决,由于外部阻容复位电路取值不对造成单片机无法完成复位。

复位电阻电容用的多大的,也遇到这种情况

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

58

帖子

0

粉丝