MSP430f2619学习--看门狗

MSP430看门狗的主要特点:
•WDT是一个16位计数器
•有两种模式,看门狗模式和间隔定时器模式
•可选时钟源
•需要口令才能对其操作

一、控制寄存器

看门狗的主要功能是,当程序发生故障时能使软件系统重新启动;

控制寄存器WDTCTL,高8位被用作口令,低8位用于控制;
写入指令时必须正确写入口令,若口令错误将导致系统复位
寄存器WDTCTL定义:
WDTHOLD:启动或关闭看门口,0开启,1关闭;
WDTNMIES:NMI中断触发方式,0上升沿触发,1下降沿触发;
WDTNMI:RST/NMI引脚功能选择,0复位引脚,1NMI中断引脚;
WDTTMSEL:看门狗定时器模式选择,0看门狗模式,1定时器模式;
WDTCNTCL:看门狗定时器计数器清0,0无操作,1WDTCNT == 0000h;
WDTSSEL:时钟源选择,0SMCLK,1ACLK;
WDTISx:定时长度选择,00计数次数为32768,01计数次数为8192,10计数次数为512,11计数次数为64;
在这里插入图片描述

二、看门狗模式

在看门狗模式下,有一个 Clock Fail-Safe功能,是用来保证看门狗时钟源正常的,例如,用来给看门狗提供时钟的ACLK或SMCLK出现了故障,那么看门狗的时钟源将会自动切换到MCLK,这个功能同样会影响低功耗功能的使用;
看门狗设置方式:

时钟源SMCLK = 1MHz;
WDTCTL = WDTPW+WDTCNTCL; //32ms
WDTCTL = WDTPW+WDTCNTCL+WDTIS0;//8ms
WDTCTL = WDTPW+WDTCNTCL+WDTIS1;//0.5ms
WDTCTL = WDTPW+WDTCNTCL+WDTIS1+WDTIS0;// 0.064ms

在msp430f2619.h中对看门狗延时设置均有说明,如下图:
在这里插入图片描述

三、间隔定时器模式

间隔定时器模式下,达到设定的时间后WDTIFG标志就会置位,如果设置了中断使能(WDTIE = 1),则会触发间隔定时器中断,在中断服务程序中处理之后,WDTIFG标志位会自动清0;

间隔定时器模式,时钟源SMCLK = 1MHz情况下,

WDTCTL = WDTPW+WDTTMSEL+WDTCNTCL; //定时32ms
WDTCTL = WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0; //定时8ms
WDTCTL = WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1; //定时0.5ms
WDTCTL = WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0;//定时0.064ms

在msp430f2619.h中对间隔定时器设置也有说明,如下图:

在这里插入图片描述

四、贴上代码

void WatchDog_Open(void)
{   
    //1MHz
    WDTCTL = WDT_MRST_32;//32ms
}

void WatchDog_FeedDog(void)
{
    WDTCTL = WDTPW + WDTCNTCL;//清计数器
}

void WatchDog_Stop(void)
{
    WDTCTL = WDTPW + WDTHOLD;
}

/

void IntervalTimer_Open(void)//间隔定时器模式
{
    //1MHz
    WDTCTL = WDT_MDLY_8;//interval timer mode,WDTCNT = 0000H,SMCLK,8192
    IE1 |= WDTIE;
} 

#pragma vector = WDT_VECTOR   //中断处理函数
__interrupt void WDT_ISR(void)//8192/1000000 = 8.192ms
{
      ;//中断处理
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值