打印

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

[复制链接]
667|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 | 只看该作者
这个在程序一开始的需要设置关狗操作的。

使用特权

评论回复
5
xiaolong12| | 2016-7-19 16:03 | 只看该作者
先关狗,再初始化,然后再开狗,这样的过程才对。

使用特权

评论回复
6
mmbs| | 2016-7-19 17:11 | 只看该作者
看看寄存器使能了吗

使用特权

评论回复
7
mmbs| | 2016-7-19 17:12 | 只看该作者
串口调试一下,出书寄存器状态。

使用特权

评论回复
8
firstblood| | 2016-7-19 22:29 | 只看该作者
那就从开始检查的们还有检查下看门狗相关的寄存器的设计的。

使用特权

评论回复
9
suxindg| | 2016-7-21 13:21 | 只看该作者
WDT_init()函数中的语句WDTCTL=WDT_ADLY_250;无法写入寄存器WDCTL,因为WDTCTL受password保护!

使用特权

评论回复
10
lzbf| | 2016-7-21 22:52 | 只看该作者
要定时的喂狗

使用特权

评论回复
11
lzbf| | 2016-7-21 22:55 | 只看该作者
看门狗中断执行了吗

使用特权

评论回复
12
zhangbo1985| | 2016-7-22 22:54 | 只看该作者
你这个是利用看门狗定时的还是?

使用特权

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

本版积分规则

154

主题

763

帖子

0

粉丝