疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十一)看门狗
疯狂的大柚柚带你玩转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(基础篇)----(十一)看门狗相关推荐
- java玩转区块链-基础篇-账户
java玩转区块链-基础篇--账户 java环境配置 基础概念 账户 maven包引用 创建账户代码 代码解释 (1) (2) (3) (4) 可以不让搞,但是不允许你不会 java环境配置 jdk版 ...
- java玩转区块链-基础篇-solidity语法-基础类型
java玩转区块链-基础篇-solidity语法-基础类型 java环境配置 代码准备 maven 完整solidity 执行步骤 基础类型 布尔类型 类型标识: 字面常量值: 运算符: 短路规则: ...
- 独立艺术家大谷spizher带你玩转PaddleGAN
一个曾被 "卷积网络之父"Yann LeCun(杨立昆)誉为「过去十年计算机科学领域最有趣的想法之一」,是近年来火遍全网,AI 研究者最为关注的深度学习算法方向之一,GAN--生成 ...
- 一篇文章带你玩转C语言基础语法5:条件判断 if else 语句与分支 。(千字总结)
我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位
- 一篇文章带你玩转C语言基础语法。2:数据类型。千字总结
我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主 欢迎各位
- 玩转RAW格——基础篇
一.什么是RAW文件? RAW文件主要是一种记录了数码相机传感器的原始信息,同时伴随着一些由相机所产生的一些元数据(metadata,诸如IS0的设置.快门速度.光圈值.白平衡等)的文件.不同的相机制 ...
- 【博学谷学习记录】超强总结,用心分享丨大数据超神之路(五):Hadooop基础篇
文章目录 前言 1.编译源码 1.1 官网下载编译后的包 1.2 手动编译 1.2.1 安装编译相关的依赖 1.2.2 手动安装cmake3.13.5 1.2.3 手动安装snappy1.1.3 1. ...
- C#插件开发之带控件的插件开发(基础篇)
1.实现功能介绍 插件中存在控件,运行程序时将控件添加到主程序的容器panel中,可执行插件中设定的控件功能. 2.文件架构 3.创建插件接口 namespace PluginFramework {p ...
- 玩转 Postman:基础篇
极尽详细的 Postman 入门教材,从接口基础和 HTTP 协议讲起,读者可以从零开始,了解到 Postman 作为一个专业接口测试工具的主要使用方法,并结合 Github API,实战练习 Pos ...
- 计算机用户名密码修改 win10,玩转Win10密码基础篇:设置修改系统登录密码
电脑要不要设置密码?为了安全还是设一个吧.这里所说的密码是windows登录密码,即登录windows时的密码.如果为win10登陆账号设置了密码则在进入系统时会要求输入密码,如果没有设置则会直接进入 ...
最新文章
- Java Hibernate模板 学习总结
- 面试系列八 es写入数据的工作原理
- mysql建用户无密码_mysql建用户和修改密码和忘记密码的解决办法
- Spring Security(18)——Jsp标签
- 深度优先遍历解决连通域求解问题-python实现
- C++——常用取整方法
- ubuntu下解决wireshark权限问题
- 知识管理java_java面试题 - 集合框架
- matlab图像模糊处理
- 为了方便在微博上看小黄图,我写了一段JS
- excel冻结指定行和列
- Requirement already satisfied解决办法
- 国际商务英语学习[三]
- 使用Python连接阿里云物联网
- 点到线段的最短距离——矢量法
- 在JDBC中使用预编译Statement 以及它的优点
- 【杰理AC692X】双LINEIN模式做法
- 论文笔记1《基于ID3决策树改进算法的客户流失预测分析》
- Eclipse开启弹出Subversive Connector Discovery窗口解决办法
- 如何把meshlab中的圆环去掉_MeshLab中插件的添加过程