Zigbee CC2430睡眠定时器的使用635994991
//sz wxl
//说明:本实验在深圳无线龙提供的CC2430模块中调试通过。http://www.wxlmcu.com
#include
#define uint unsigned int
#define uchar unsigned char
#define DELAY 10000
//小灯控端口定义
#define RLED P1_0
#define YLED P1_1
void Delay(void);
void Init_IO_AND_LED(void);
void PowerMode(uchar sel);
/****************************************************************
*函数功能:延时
*入口参数:无
*返回值 :无
*说 明 :可在宏定义中改变延时长度
****************************************************************/
void Delay(void)
{
uint tt;
for(tt = 0;tt for(tt = 0;tt for(tt = 0;tt for(tt = 0;tt for(tt = 0;tt } /**************************************************************** *函数功能:初始化电源 *入口参数:para1,para2,para3,para4 *返回值 :无 *说 明 :para1,模式选择 * * * para1 0 1 2 3 * * mode PM0 PM1 PM2 PM3 * * * ****************************************************************/ void PowerMode(uchar sel) { uchar i,j; i = sel; if(sel<4) { SLEEP &= 0xfc; SLEEP |= i; for(j=0;j<4;j++); PCON = 0x01; } else { PCON = 0x00; } } /**************************************************************** * 函数功能:初始化I/O,控制LED * 入口参数:无 * 返回值 :无 * 说 明 :初始化完成后关灯 ****************************************************************/ void Init_IO_AND_LED(void) { P1DIR = 0X03; RLED = 1; YLED = 1; P1SEL &= ~0X0C; P1DIR &= ~0X0C; P1INP &= ~0X0c;//有上拉、下拉 P2INP &= ~0X40; //选择上拉 P1IEN |= 0X0c; //P12 P13 PICTL |= 0X02; //下降沿 EA = 1; IEN2 |= 0X10; //P1IE = 1; P1IFG |= 0x00; //P12 P13 }; /**************************************************************** * 函数功能:主函数 * 入口参数: * 返回值 :无 * 说 明 :10次绿色LED闪烁后进入睡眠状态 ****************************************************************/ void main() { uchar count = 0; Init_IO_AND_LED(); RLED = 0 ; //开红色LED,系统工作指示 Delay(); //延时 Delay(); Delay(); Delay(); while(1) { YLED = !YLED; RLED = 0; count++; if(count >= 20) { count = 0; RLED = 1; PowerMode(3); //10次闪烁后进入睡眠状态 } //Delay(); Delay(); //延时函数无形参,只能通过改变系统时钟频率 //来改变小灯的闪烁频率 }; } /***************************************** //唤醒系统 *****************************************/ #pragma vector = P1INT_VECTOR __interrupt void P1_ISR(void) { if(P1IFG>0) { P1IFG = 0; } P1IF = 0; }
数据正在载入中..
