搜索
bottom↓
回复: 16

msp430f149内部watchdog

[复制链接]
头像被屏蔽

出0入0汤圆

发表于 2012-11-25 22:08:47 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-11-26 13:05:59 | 显示全部楼层
F149的看门狗时钟只能选择SMCK、ACLK
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-26 13:49:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-11-26 14:02:40 | 显示全部楼层
每隔一段时间要喂狗

WDTCTL = WDTPW | WDT_ARST_250;

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

出0入0汤圆

 楼主| 发表于 2012-11-26 14:19:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 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();
}
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-26 15:19:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-11-26 15:53:02 | 显示全部楼层
增加喂狗次数试试。如果你把看门狗时钟选择ACLK的话,应该不会到8M的。

出0入0汤圆

发表于 2012-11-26 16:14:07 | 显示全部楼层
在仿真时是不可以打开看门狗的,因为后台时钟旧一直在走的。
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-26 16:58:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-26 16:59:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-11-26 17:09:06 | 显示全部楼层
xiatianzhang 发表于 2012-11-26 16:58
800k

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

出0入0汤圆

发表于 2012-11-26 19:29:29 | 显示全部楼层
暂时关掉看门狗,等软件调试完成后再打开看门狗。
我没留意F149的内部低频RC是多少。MCLK是给CPU内核使用的,SMCLK是用于外设的。你可以看下使用指南中的时钟部份。
我的意见只是供你参考。

出0入0汤圆

发表于 2012-11-26 19:45:47 | 显示全部楼层


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

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

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-26 22:28:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-11-26 22:31:38 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-11-27 08:30:43 | 显示全部楼层
xiatianzhang 发表于 2012-11-26 22:31
我看了系统的主时钟也即使MCLK是跑8M的。其余的像AD 定时器。UART等都是外设使用的是SMCLK。看门狗也使用 ...

首先DCO是不能用作ACLK的,所以你的ACLK肯定没配置到DCO上,所以你的ACLK是失效的。看门狗默认在ACLK失效的情况下,切换到了SMCLK上,所以他跑的是8M。以下是时钟框图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-27 03:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表