cc2530 按键唤醒功耗模式PM3例程
功能描述
cc2530 按键唤醒功耗模式PM3
//CC2530的休眠和低功耗/****************************************************************************
* 文 件 名: main.c
* 描 述: LED1闪烁3次后进入睡眠状态,通过按下按键OK产生外部中断进行唤醒
****************************************************************************/
#include <ioCC2530.h>typedef unsigned char uchar;
typedef unsigned int uint;#define LED1 P1_0 //P1_0口控制LED1,
#define LED2 P1_1 //P1_1表示芯片睡眠状态
#define KEY1 P0_7 //P0_7=OK按键/****************************************************************************
* 名 称: 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定义为输出口LED1 = 1; //LED1灯上电默认为熄灭 LED2=0;
}/****************************************************************************
* 名 称: InitKey()
* 功 能: 设置KEY相应的IO口,采用中断方式
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitKey()
{P0IEN |= 0x80; // P0.7 设置为中断方式 1:中断使能PICTL |= 0x80; //下降沿触发 IEN1 |= 0x20; //允许P0口中断; P0IFG = 0x00; //初始化中断标志位EA = 1; //打开总中断
}/****************************************************************************
* 名 称: SysPowerMode()
* 功 能: 设置系统工作模式
* 入口参数: mode等于0为PM0 1为PM1 2为PM2 3为PM3
* 出口参数: 无
****************************************************************************/
void SysPowerMode(uchar mode)
{ if(mode > 0 && mode < 4) { SLEEPCMD |= mode; //设置系统睡眠模式 PCON = 0x01; //进入睡眠模式 ,通过中断唤醒} else PCON = 0x00; //主动/空闲模 通过中断唤醒系统
}/****************************************************************************
* 名 称: P0_ISR(void) 中断处理函数
* 描 述: #pragma vector = 中断向量,紧接着是中断处理程序
****************************************************************************/
#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void)
{ if( (P0IFG & 0X80) > 0) { P0IFG = 0; //清标志位} P0IF = 0; //清中断SysPowerMode(0); //正常工作模式
} /****************************************************************************
* 程序入口函数
****************************************************************************/
void main(void)
{ uchar i=0; InitLed(); //设置LED灯相应的IO口 InitKey(); //设置KEY相应的IO口while(1){LED2=0;for (i=0; i<6; i++) //LED1闪烁3次提醒用户将进入睡眠模式{LED1 = ~LED1;DelayMS(500);}LED2=1;SysPowerMode(3); //进入睡眠模式PM3,按下按键S1中断唤醒系统 }
}
cc2530 按键唤醒功耗模式PM3例程相关推荐
- CC2530睡眠唤醒模式
CC2530睡眠唤醒模式 睡眠唤醒模式可以让mcu进入睡眠模式,并在规定的时间唤醒.一般情况下,唤醒后,可执行相关任务,完成任务后需要手动再次进入睡眠工作,并设置唤醒时间.代码如下: #include ...
- DA14580笔记(2)-------睡眠状态下按键唤醒
对于DA14580的唤醒,其主要有两个唤醒源. 1.一个是同步唤醒源,来源于BLE的内部定时器(默认10秒)和BLE事件: 2.一个是异步唤醒源,即唤醒中断,可以配置为任意引脚唤醒,其即使用corte ...
- 休眠 嵌入式_内幕消息:嵌入式软件挤出最低功耗模式
低功耗运行仍然是各行业应用的关键驱动因素.随着睡眠模式的增加,电源管理突然从单纯的硬件问题转移到软件开发人员必须考虑的事情上. 功耗模式的最简单应用是当系统空闲时,将其置于休眠状态.然而,今天的MCU ...
- x86 高精度延时方案实现(10us误差) | 功耗模式C-states
<X86-Linux下高精度延时方案的实现(10us误差)> 目录 问题描述 解决思路 柳暗花明 解决办法 Linux实现高精度延时,网上大部分方法只能实现50us左右的延时精度,今天我们 ...
- ESP32 使用 RTC_GPIO 唤醒 Deep-Sleep 模式
此例程是使用 GPIO4( 对应 RTC_GPIO10) 触发高电平,来唤醒 Deep-Sleep 模式. ESP-IDF 版本为 v4.3.1 版本. 测试代码如下: /* ESP32 Deep-s ...
- 应广单片机休眠和按键唤醒
对应电池供电的产品,在不使用的时候,单片机和外设都应该进入休眠状态,用于减少对电池电量消耗.在使用的时候又能够通过按键,或是其他信号唤醒系统,然后进入正常工作状态.在电压V3.3V的情况下,应广单片机 ...
- TX2的开机测试 刷机过程 功耗模式选择 源更新 语言修改 拼音输入法设置
以下博文主要为记录刷机过程,为后续刷机提供帮助,其中的图片并非我截图而是借鉴别的博客,重点在于说明问题. 博客主要参考一下: https://blog.csdn.net/qq_38880380/art ...
- STM32通过串口进入和唤醒停止模式
STM32 具有运行.睡眠.停止和待机四种工作模式.上电复位后 STM32 处于运行状态,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功耗,这三种模式中,电源消耗不同.唤醒时间不同.唤 ...
- Jetson TX2 power mode功耗模式
一.参考资料 TX2 五种功耗模式 NVIDIA Jetson AGX Xavier设置风扇转速.工作模式及性能监控 二.相关介绍 Jetson TX2由一个GPU和一个CPU集群组成,CPU集群由双 ...
- 关于89 jb2上的自动设置按键唤醒系统的功能以及L版本上设置唤醒键
[Description] 目前89 jb2版本上是默认实现打电话状态下实现按键唤醒系统的功能的,这样可以满足电话过程中的音量键有效等需求, 但是这套机制同时限制了一般状态下的按键唤醒系统的实现,因此 ...
最新文章
- 2022-2028年中国化妆品OEM行业市场发展规模及前瞻分析报告
- 开源项目贡献者_如何吸引新的贡献者加入您的开源项目
- Equipment download和自动生成的IBASE DB 信息
- php发送验证码短信,php发送短信验证码
- DevExperience(1712)
- Java EE 7的高峰–使用EclipseLink的多租户示例
- python中带附件发送电子邮件_python发送带附件邮件
- OpenGL(二)——OpenGL图形绘制
- 自制安装包集成.net framework 4.0
- 语音识别双十一优惠活动
- block的理解 ios_iOS面试--字节跳动最新iOS开发面试题
- 巴克码信号处理的计算机仿真,单码道绝对编码信号处理建模与仿真
- 从网上搜集的几种数据分页的总结
- 基于微信小程序的培训机构系统
- Python的崛起,百万程序员被影响?真相……
- 求助,nodejs 在安装threads_a_gogo时报错
- Nyko推出平板手柄 为运行在Tegra3上的游戏特别打造
- Mac网络热点的配置Charles移动端抓包实战
- (超详细的新手教程)怎么下载JDK包?
- 注意力机制 | CNN-LSTM-Attention基于卷积-长短期记忆网络结合注意力机制多输入单输出回归预测(Matlab程序)
热门文章
- 统信UOS桌面版游戏攻略
- 如何用计算机对cad的草图,cad文件导入草图大师的方法步骤
- EMQ X开源版使用
- window10c语言下载,[下载备用]Windows 10多国语言包和独立语言包下载
- 计算机国际标准编码,【计算机基础】常用编码格式
- linux添加变色龙引导,变色龙引导界面屏蔽多余盘符并默认启动Mac _ 黑苹果乐园...
- Ember Model
- 小马哥linux网络培训,linux基础入门
- 百度贴吧签到助手php,玩心太大,自己部署一个贴吧签到器
- 潇洒郎: PDF加密 设置不可打印 - 福昕高级PDF编辑器或者Adobe Acrobat