CC2530基础实验二:电源管理与睡眠定时器

隔了好久……🤐
直接贴代码。简单的了解一下CC2530的电源管理模块和寄存器配置,以及跟电源管理挂钩的睡眠定时器。

代码及解析

#include <ioCC2530.h>
typedef unsigned int uint;
typedef unsigned char uchar;
typedef unsigned long ulong;
/****************************
该示例通过一个全局变量flag来分别进入CC2530电源管理模块的四个供电模式:空闲模式、PM1、PM2、PM3
通过睡眠定时器来控制电源模式的休眠唤醒时间间隔
现象是当2530上电或重启后,LED1会闪烁两次,然后进入空闲供电模式,通过睡眠定时器设置3秒后唤醒设备,
然后LED1闪烁两次,进入PM1,三秒后LED1再次闪烁两次,进入PM2,三秒后LED灯闪烁两次,进入PM3,之后就不会再自行唤醒设备,
此时进入了深度休眠,复位和中断才能唤醒他,这里使用KEY1的按键中断来唤醒进入PM3模式的设备。
一遍的测试中LED会自行闪烁四轮8次,每轮间隔3秒左右,然后不会再自行闪烁,直到按下KEY1
可以将140行的注释取消来查看睡眠定时器的运作情况
****************************/

//定义控制灯的端口
#define LED1 P1_0	//定义LED1为P10口控制
#define LED2 P1_1	//定义LED2为P11口控制
#define KEY1 P0_1       //定义KEY1为P01口控制

//函数声明
void Delay(uint n);		//延时
void InitIO(void);		//初始化LED控制IO口函数
void InitKEY(void);            //初始化KEY控制IO口函数
void setSleep(uint);		//设置睡眠模式
void Set_ST_Period(uint);	//设置睡眠时间
void InitSleepTimer(void);	//初始化睡眠定时器
uint flag = 0;			//供电模式标志计数


//延时
//输入n,延时(4*n)ms
void Delay(uint n)
{
   
  T1CTL |= 0x01;                //1分频 16M晶振 溢出时间为1/16000000*65535=4ms
  while(n>0)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值