/****************************************************************************
* 描 述: 打开看门狗后,得记得喂狗,不然系统就会不停地复位了
****************************************************************************/
#include <ioCC2530.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define LED1 P1_0 // P1.0口控制LED1
#define LED2 P1_1 // P1.1口控制LED2
/****************************************************************************
* 名 称: DelayMS()
* 功 能: 以毫秒为单位延时 16M时约为535,系统时钟不修改默认为16M
* 入口参数: msec 延时参数,值越大,延时越久
* 出口参数: 无
****************************************************************************/
void DelayMS(uint msec)
{
uint i,j;
for (i=0; i<msec; i++)
for (j=0; j<535; j++);
}
/****************************************************************************
* 名 称: InitLed()
* 功 能: 设置LED灯相应的IO口
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitLed(void)
{
P1DIR |= 0x03; //P1.0、P1.1定义为输出
LED1 = 1; //默认LED灯为熄灭状态
LED2 = 1;
}
void Init_Watchdog(void)
{
WDCTL = 0x00; //打开IDLE才能设置看门狗
WDCTL |= 0x08; //定时器间隔选择,间隔一秒
}
void FeetDog(void)
{
WDCTL = 0xa0; //清除定时器。当0xA跟随0x5写到这些位,定时器被清除
WDCTL = 0x50;
LED2 = 0; //系统不复位LED2灯长亮
}
/****************************************************************************
* 程序入口函数
****************************************************************************/
void main(void)
{
InitLed();//调用初始化函数
Init_Watchdog();
while(1)
{
LED1 = ~LED1; //仅指示作用。
DelayMS(300);
LED1=0;
//FeetDog(); //喂狗系统将不再主动复位,LED1灯不闪烁,LED2长亮
//注释FeetDog函数时系统不断复位,LED1灯闪烁
}
}
* 描 述: 打开看门狗后,得记得喂狗,不然系统就会不停地复位了
****************************************************************************/
#include <ioCC2530.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define LED1 P1_0 // P1.0口控制LED1
#define LED2 P1_1 // P1.1口控制LED2
/****************************************************************************
* 名 称: DelayMS()
* 功 能: 以毫秒为单位延时 16M时约为535,系统时钟不修改默认为16M
* 入口参数: msec 延时参数,值越大,延时越久
* 出口参数: 无
****************************************************************************/
void DelayMS(uint msec)
{
uint i,j;
for (i=0; i<msec; i++)
for (j=0; j<535; j++);
}
/****************************************************************************
* 名 称: InitLed()
* 功 能: 设置LED灯相应的IO口
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitLed(void)
{
P1DIR |= 0x03; //P1.0、P1.1定义为输出
LED1 = 1; //默认LED灯为熄灭状态
LED2 = 1;
}
void Init_Watchdog(void)
{
WDCTL = 0x00; //打开IDLE才能设置看门狗
WDCTL |= 0x08; //定时器间隔选择,间隔一秒
}
void FeetDog(void)
{
WDCTL = 0xa0; //清除定时器。当0xA跟随0x5写到这些位,定时器被清除
WDCTL = 0x50;
LED2 = 0; //系统不复位LED2灯长亮
}
/****************************************************************************
* 程序入口函数
****************************************************************************/
void main(void)
{
InitLed();//调用初始化函数
Init_Watchdog();
while(1)
{
LED1 = ~LED1; //仅指示作用。
DelayMS(300);
LED1=0;
//FeetDog(); //喂狗系统将不再主动复位,LED1灯不闪烁,LED2长亮
//注释FeetDog函数时系统不断复位,LED1灯闪烁
}
}