xiatianzhang 发表于 2012-11-25 22:08:47

和为和 发表于 2012-11-26 13:05:59

F149的看门狗时钟只能选择SMCK、ACLK

xiatianzhang 发表于 2012-11-26 13:49:58

和为和 发表于 2012-11-26 14:02:40

每隔一段时间要喂狗

WDTCTL = WDTPW | WDT_ARST_250;

这是用 ACLK 32.768KHZ 的时钟,大概250毫秒,要小于这个时间内喂狗。

xiatianzhang 发表于 2012-11-26 14:19:28

和为和 发表于 2012-11-26 14:25:06

喂狗是用同样的语句来喂就行了。
void main()
{
    WDTCTL = WDTPW + WDTHOLD;                                                   //停止看门狗
    //WDTCTL = WDTPW+SSEL1;//+ WDTHOLD;                                                   //停止看门狗   
    //WDT_ARST_1000;
    _DINT();                                                                  //关中断
    BordBord_Config();                                                          //板子配置
    _EINT();                                                                  //开中断
    P1OUT=0xFF;
    P2OUT=0xFF;
    P3OUT=0xFF;
    OLED_reset();                                                               //OLED硬件复位
    OM_ini();                                                                   //OLED液晶初始化
    clr_scr();                                                                  //清屏
    uchar button = 120;                                                         //按键定时计数
    WDTCTL = WDTPW|WDT_ARST_250;
    //WDT_ARST_250;
    //WDTCTL = WDTPW + WDTCNTCL;
    while(1)
    {
          WDTCTL = WDTPW|WDT_ARST_250;
          if (Keybuf != 0)
          {
               HandleKey();
               button = 120;
          }
          else
          {
               _NOP();
          }         
          What_Key();
}

xiatianzhang 发表于 2012-11-26 15:19:18

qiuchen 发表于 2012-11-26 15:53:02

增加喂狗次数试试。如果你把看门狗时钟选择ACLK的话,应该不会到8M的。

和为和 发表于 2012-11-26 16:14:07

在仿真时是不可以打开看门狗的,因为后台时钟旧一直在走的。

xiatianzhang 发表于 2012-11-26 16:58:14

xiatianzhang 发表于 2012-11-26 16:59:30

qiuchen 发表于 2012-11-26 17:09:06

xiatianzhang 发表于 2012-11-26 16:58 static/image/common/back.gif
800k

800k的时钟是来自于DCO吗?8M是在MCLK上还是在SMCLK上呢?

和为和 发表于 2012-11-26 19:29:29

暂时关掉看门狗,等软件调试完成后再打开看门狗。
我没留意F149的内部低频RC是多少。MCLK是给CPU内核使用的,SMCLK是用于外设的。你可以看下使用指南中的时钟部份。
我的意见只是供你参考。

和为和 发表于 2012-11-26 19:45:47



根据使用指南的框图,F149并没有800K的时钟上,只有 ACLK 和 SMCLK 两种。

ACLK 就是外部的 32768HZ的时钟。

而 SMCLK 是内部DCO的输出时钟。

如果为了省电,那看门狗不建议选择SMCLK,因为MCU一进入省电模式,基本上DCO是会关掉的。

xiatianzhang 发表于 2012-11-26 22:28:17

xiatianzhang 发表于 2012-11-26 22:31:38

qiuchen 发表于 2012-11-27 08:30:43

xiatianzhang 发表于 2012-11-26 22:31 static/image/common/back.gif
我看了系统的主时钟也即使MCLK是跑8M的。其余的像AD 定时器。UART等都是外设使用的是SMCLK。看门狗也使用 ...

首先DCO是不能用作ACLK的,所以你的ACLK肯定没配置到DCO上,所以你的ACLK是失效的。看门狗默认在ACLK失效的情况下,切换到了SMCLK上,所以他跑的是8M。以下是时钟框图。
页: [1]
查看完整版本: msp430f149内部watchdog