📄 wdt.c
字号:
#include "msp430x44x.h"
#include "wdt.h"
//WDT可以选择T100MS/T250MS/T16MS/T2MS,WDT必须使用ACLK=32768HZ
void WDTTimeSet(BYTE interval)
{
WDTCTL=WDTPW+WDTCNTCL+(WDTCTL&0xFC)|interval;
//修改时间间隔必须同时清零WDT
}
/* NMI功能选择:
系统默认为RST功能,调用本函数时为NMI功能
edge可选参数RISING,FALLING
*/
void NMISet(BYTE edge)
{
WDTCTL=WDTPW+WDTNMI+((WDTCTL&0x9F)|edge<<6);
}
/* wdt.h内容
#define BYTE unsigned char
//WDT时钟为ACLK=32768HZ时 WDT定时值
#define T1000MS 0 //1秒 WDT_FREQ=WDTCLK/ 32768
#define T250MS 1 //250毫秒 WDT_FREQ=WDTCLK/ 8192
#define T15MS 2 //15.625毫秒 WDT_FREQ=WDTCLK/ 512
#define T2MS 3 //1.953125毫秒 WDT_FREQ=WDTCLK/ 64
// RST/NMI功能选择参数
#define RISING 0
#define FALLING 1
//关闭WDT节能
#define WDTStop() WDTCTL=WDTPW+((WDTCTL&0x0F)|WDTHOLD)
//WDTCNT清零
#define WDTRefresh() WDTCTL=WDTPW+((WDTCTL&0xFF)|WDTCNTCL)
//选择WDT时钟源为SMCLK
#define WDTSMCLKSet() WDTCTL=WDTPW+((WDTCTL&0xFF)&(~WDTSSEL))
//选择WDT时钟源为ACLK
#define WDTACLKSet() WDTCTL=WDTPW|((WDTCTL&0xFF)|WDTSSEL)
//设定WDT为定时模式 不调用本函数时为默认WDT模式
#define WDTTimerSet() WDTCTL=WDTPW|((WDTCTL&0xFF)|WDTTMSEL)
extern void WDTTimeSet(BYTE interval);
void NMISet(BYTE edge);
WDT中断写法
interrupt[WDT_VECTOR] void WDT_ISR(void)
{
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -