📄 main_c.c
字号:
/*********************************************************
*
* 文件名称:
* main_c.c
* 文件说明:
* 程序用于对看门狗的两种工作模式进行测试
* 当setWDT(0)时,程序测试看门狗的看门狗模式
* 当setWDT(1)时,程序测试看门狗的定时器模式
*************************************************************/
#include <msp430x44x.h>
/***********************************************************
* 设置看门狗的两种模式
* 在系统加电后,默认的子系统频率是1M,设置WDT延迟为250ms
* 那么系统执行0x1ffff 条指令后系统如果没有重新设置WDT,
* WDT将导致系统复位
*************************************************************/
void setWDT(int mode)
{
unsigned int tmp;
if(mode==1)
{ // 定时器模式
WDTCTL = WDT_ADLY_250; // 250ms中断间隔
IE1 |= WDTIE; // 使能 WDT 中断
P5DIR |= 0x02; // P5.1 output mode
_EINT(); // 开中断
}else if(mode==0)
{ //看门狗模式
WDTCTL = WDT_ARST_250; //设置看门狗时间间隔为250ms
//在系统加电后,默认子系统时钟频率是1M
for(tmp=0x7fff;tmp>0;tmp--);//延迟
P5DIR |= 0x02; //P5.1 output mode
P5OUT |= 0x02; //light LED4
for(tmp=0x7fff;tmp>0;tmp--); //延迟, 执行一次tmp--至少要用2个指令
}
}
/**********************************************************
* 函数说明:
* WDT中断函数
*
************************************************************/
#pragma vector = WDT_VECTOR
__interrupt void WDT_Interrupt(void)
{
P5OUT ^= 0x02;
}
/***********************************************************
* main()函数
*************************************************************/
void main(void)
{
setWDT(1); //设置程序运行在看门狗模式
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -