疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)

(十一) 看门狗

开看门狗(默认开):WDTCTL=WDTPW;
清看门狗:WDTCTL=WDTPW+WDTCNTCL;
关看门狗:WDTCTL=WDTPW+WDTHOLD;

注意:在编程时为了防止看门狗使单片机复位则一般关掉看门狗。

看门狗做间隔定时器
#define WDT_NDLY_32 (WDTEV+WDTTMSEL+WDTCNTCL)#define WDT_JDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTISO)#define WDT_JDLY_O_5 (WDTEV+WDTTMSEL+WDTCNTCL+WDTIS1)#define WDT_JDLY_O_064 (WDTEW+WDTTMSEL+WD TCNTCL+WDTIS1+WDTISO)#define WDT_ADLY_1000 (WDTPV+WDTTMSEL+WDTCNTCL+WDTSSEL)#define WDT_ADLY_250(WDTFVHWDTTMSEL+WDTCNTCL+WDTSSEL+WDTISO)#define WDT_ADLY_16 (WDTPV-WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)#define WDT_ADLY_19 (WDTEV+WDTTMSEL +WD TCNTCI+WDTSSEL+WDTTS1+WDTISO)#define WDT_JRST_32 (WDTEW+WDTCNTCL)#define WDT_JRST_B (WDTFW+WDTCNTCL+WDTISO)#define WDT_JRST O_5 (WDTPV+WDTCNTCL+WDTIS1)#define WDT_JRST_O_064 (WDTFW+WDTCNTCL+WDTIS1+WDTISO)#define WDT_ARST_1000 (WDTFVHWDTCNTCL+WDTSSEL)#define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTISO)#define WDT_ARST_16 (WDTFW+WDTCNTCL+WDTSSEL+WDTIS1)#define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSET+WDTTS1+WDTISO)
#include<msp430g2553.h>
void main(void)
{
WDTCTL=WDT_MDLY_32;        // Set Watchdog Timer
interval to ~30ms SMCLK计时
IE1 |= WDTIE;      // Enable WDT interrupt 间隔定时器模
式中断使能
P1DIR |=0x01;      // Set P1.0 to output direction
_BIS_SR(LPM0_bits+ GIE);    // Enter LPM0 w/ interrupt
}
// Watchdog Timer interrupt service routine#pragma vector=WDT_VECTOR
_interrupt void watchdog_timer(void)     //WDTIFG中断标志自动清除
{
P1OUT A=0x01;           // Toggle P1.0 using exclusive-OR
}

看门狗控制寄存器还控制着RST/NMI管脚的功能,可以选择它为复位管脚,也可以选择它产生不可屏蔽中断,

  • 例子如下:
    第16脚是RST/NMI/SBWTDIO 在本程序中,如果按下RESER键,会进入非可屏蔽中断,使P10led闪烁
#include <msp430g2553.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD + WDTNMI +WDTNMIES;     // WDT off NMI hi/lo
//WDTHOLD停止看门狗定时器 WDTNMI选择RST/NMI pin为NMI功能 WDTNMIES选择下降沿
触发NMIP1DIR |=0x01;          // Set P1.0 to output
direction
P1OUT &=~0x01;         // Clear P1.0 LED off
IE1 |=NMIIE;        // Enable NMI 不可屏蔽中断使能
_BIS_SR(LPM0_bits);  // Enter LPM0 因为是非可屏蔽中断,所以不用打开总中断
}
#pragma vector=NMI_VECTOR
_interrupt void nmi_(void)
{
volatile unsigned int i;
P1OUT|=0x01;           // Set P1.0 LED on
for (i=20000;i>0; i--);         // Delay
P1OUT &=~0x01;             // Clear P1.0 LED off
IFG1 &=~NMIIFG;             // Reclear NMI flag//in case bounce//NMI中断标志位必须要软件清除
IE1 |=NMIIE;               // Enable NMI
//当非可屏蔽中断被相应,所有的NMI使能位都会自动地被复位,
所以NMI相应之后,用户必须软件重新使能需要的NMI
}

疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十一)看门狗相关推荐

  1. java玩转区块链-基础篇-账户

    java玩转区块链-基础篇--账户 java环境配置 基础概念 账户 maven包引用 创建账户代码 代码解释 (1) (2) (3) (4) 可以不让搞,但是不允许你不会 java环境配置 jdk版 ...

  2. java玩转区块链-基础篇-solidity语法-基础类型

    java玩转区块链-基础篇-solidity语法-基础类型 java环境配置 代码准备 maven 完整solidity 执行步骤 基础类型 布尔类型 类型标识: 字面常量值: 运算符: 短路规则: ...

  3. 独立艺术家大谷spizher带你玩转PaddleGAN

    一个曾被 "卷积网络之父"Yann LeCun(杨立昆)誉为「过去十年计算机科学领域最有趣的想法之一」,是近年来火遍全网,AI 研究者最为关注的深度学习算法方向之一,GAN--生成 ...

  4. 一篇文章带你玩转C语言基础语法5:条件判断 if else 语句与分支 。(千字总结)

    我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位

  5. 一篇文章带你玩转C语言基础语法。2:数据类型。千字总结

    我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位

  6. 玩转RAW格——基础篇

    一.什么是RAW文件? RAW文件主要是一种记录了数码相机传感器的原始信息,同时伴随着一些由相机所产生的一些元数据(metadata,诸如IS0的设置.快门速度.光圈值.白平衡等)的文件.不同的相机制 ...

  7. 【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop基础篇

    文章目录 前言 1.编译源码 1.1 官网下载编译后的包 1.2 手动编译 1.2.1 安装编译相关的依赖 1.2.2 手动安装cmake3.13.5 1.2.3 手动安装snappy1.1.3 1. ...

  8. C#插件开发之带控件的插件开发(基础篇)

    1.实现功能介绍 插件中存在控件,运行程序时将控件添加到主程序的容器panel中,可执行插件中设定的控件功能. 2.文件架构 3.创建插件接口 namespace PluginFramework {p ...

  9. 玩转 Postman:基础篇

    极尽详细的 Postman 入门教材,从接口基础和 HTTP 协议讲起,读者可以从零开始,了解到 Postman 作为一个专业接口测试工具的主要使用方法,并结合 Github API,实战练习 Pos ...

  10. 计算机用户名密码修改 win10,玩转Win10密码基础篇:设置修改系统登录密码

    电脑要不要设置密码?为了安全还是设一个吧.这里所说的密码是windows登录密码,即登录windows时的密码.如果为win10登陆账号设置了密码则在进入系统时会要求输入密码,如果没有设置则会直接进入 ...

最新文章

  1. Java Hibernate模板 学习总结
  2. 面试系列八 es写入数据的工作原理
  3. mysql建用户无密码_mysql建用户和修改密码和忘记密码的解决办法
  4. Spring Security(18)——Jsp标签
  5. 深度优先遍历解决连通域求解问题-python实现
  6. C++——常用取整方法
  7. ubuntu下解决wireshark权限问题
  8. 知识管理java_java面试题 - 集合框架
  9. matlab图像模糊处理
  10. 为了方便在微博上看小黄图,我写了一段JS
  11. excel冻结指定行和列
  12. Requirement already satisfied解决办法
  13. 国际商务英语学习[三]
  14. 使用Python连接阿里云物联网
  15. 点到线段的最短距离——矢量法
  16. 在JDBC中使用预编译Statement 以及它的优点
  17. 【杰理AC692X】双LINEIN模式做法
  18. 论文笔记1《基于ID3决策树改进算法的客户流失预测分析》
  19. Eclipse开启弹出Subversive Connector Discovery窗口解决办法
  20. 如何把meshlab中的圆环去掉_MeshLab中插件的添加过程

热门文章

  1. TestDirector其他
  2. omnet++Aloha案例解析
  3. 牛客支招 | 面试时,如何在线考核程序员代码能力?
  4. 阿里聚安全Webview安全攻防
  5. 使用Process Monitor对病毒进行行为分析
  6. 麒麟桌面操作系统V10 SP1 桌面操作系统软件商店无法打开
  7. 视频会议常用术语——转自华为TE40帮助文档
  8. 对接银联支付接口详解java版mac开发
  9. TFlearn learning
  10. 服务器上安装Linux系统教程