看门狗定时器无效怎么回事

[复制链接]
940|11
 楼主| Rangar 发表于 2016-7-18 21:21 | 显示全部楼层 |阅读模式


#ifndef WDT_H_
#define WDT_H_
#include <msp430.h>

void WDT_init()
{

        WDTCTL=WDT_ADLY_250;        //250ms
        SFRIE1 |= WDTIE;                //WDT使能
        _enable_interrupts();           // 总中断
        //_bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, enable interrupts
}

#pragma vector=WDT_VECTOR
__interrupt void WDT_ISR(void)
{
        P1OUT ^= BIT0;
}
#endif /* WDT_H_ */



#include <msp430.h>
#include "TA0.h"
#include "TA0_PWM.h"
#include "WDT.h"



int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;      // Stop watchdog timer
    TA0_Init();//初始化TA0
    WDT_init();                  //看门狗定时器初始化
    P1DIR|=BIT0;
}
Thor9 发表于 2016-7-18 21:38 | 显示全部楼层
我记得430好多TI的例程中都有如下的语句。
WDTCTL = WDTPW + WDTHOLD;           //关狗

您main函数第一句就关了狗,后面请仔细查看下,您开狗正确么?
Rollo 发表于 2016-7-18 21:51 | 显示全部楼层
WDTCTL = WDTPW | WDTHOLD;      // Stop watchdog timer
这是关看门狗,还是开
shenmu2012 发表于 2016-7-19 15:05 | 显示全部楼层
这个在程序一开始的需要设置关狗操作的。
xiaolong12 发表于 2016-7-19 16:03 | 显示全部楼层
先关狗,再初始化,然后再开狗,这样的过程才对。
mmbs 发表于 2016-7-19 17:11 | 显示全部楼层
看看寄存器使能了吗
mmbs 发表于 2016-7-19 17:12 | 显示全部楼层
串口调试一下,出书寄存器状态。
firstblood 发表于 2016-7-19 22:29 | 显示全部楼层
那就从开始检查的们还有检查下看门狗相关的寄存器的设计的。
suxindg 发表于 2016-7-21 13:21 | 显示全部楼层
WDT_init()函数中的语句WDTCTL=WDT_ADLY_250;无法写入寄存器WDCTL,因为WDTCTL受password保护!
lzbf 发表于 2016-7-21 22:52 | 显示全部楼层
要定时的喂狗
lzbf 发表于 2016-7-21 22:55 | 显示全部楼层
看门狗中断执行了吗
zhangbo1985 发表于 2016-7-22 22:54 | 显示全部楼层
你这个是利用看门狗定时的还是?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

154

主题

763

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部