#1024程序员节#
功能描述
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中断唤醒系统 }
}

#1024程序员节# cc2530 按键唤醒功耗模式PM3例程相关推荐

  1. 看会、参会、相亲、购物、领奖,1024 程序员节带你嗨玩!

    转眼又是十月,程序员们翘首以盼.相约面基的1024大会又双叒叕要惊喜上线啦!10月23日,楚汉名城--风里雨里,CSDN(长沙等你)! 除了满足程序员对这场技术饕餮盛宴的期待,2022 长沙 · 中国 ...

  2. CC2530睡眠唤醒模式

    CC2530睡眠唤醒模式 睡眠唤醒模式可以让mcu进入睡眠模式,并在规定的时间唤醒.一般情况下,唤醒后,可执行相关任务,完成任务后需要手动再次进入睡眠工作,并设置唤醒时间.代码如下: #include ...

  3. DA14580笔记(2)-------睡眠状态下按键唤醒

    对于DA14580的唤醒,其主要有两个唤醒源. 1.一个是同步唤醒源,来源于BLE的内部定时器(默认10秒)和BLE事件: 2.一个是异步唤醒源,即唤醒中断,可以配置为任意引脚唤醒,其即使用corte ...

  4. 1024 程序员节专题论坛来袭,权威解读 MindSpore、CANN 5.0 特性和 HCIA MDC 开发者认证...

    "授人以鱼不如授人以渔",一句古话中蕴含的发展真理,我们将其套用到如今炽手可热的 AI 领域之上会发现无比适用.2018 年,华为提出了普惠 AI 的概念,降低 AI 开发门槛,让 ...

  5. MySQL之父等国际数据库掌门人齐聚,1024 程序员节全体大会重磅官宣!

    10月23-24日,由CSDN.长沙市政府及多家机构联合主办的第二届"长沙·中国1024程序员节"(1024.csdn.net)将盛大举行.今年程序员节活动囊括:岳麓书院尖峰对话, ...

  6. 1024程序员节来啦!!.NET技术圈独家优惠劵,折后再折,赶紧来抢啊

    1024程序员节 当当网计算机图书 每满100减50! 满200减100! 满300-150!   机械工业出版社华章公司联合当当网特意为[DotNET技术圈]用户申请了一批可与满减叠加使用的&quo ...

  7. 休眠 嵌入式_内幕消息:嵌入式软件挤出最低功耗模式

    低功耗运行仍然是各行业应用的关键驱动因素.随着睡眠模式的增加,电源管理突然从单纯的硬件问题转移到软件开发人员必须考虑的事情上. 功耗模式的最简单应用是当系统空闲时,将其置于休眠状态.然而,今天的MCU ...

  8. x86 高精度延时方案实现(10us误差) | 功耗模式C-states

    <X86-Linux下高精度延时方案的实现(10us误差)> 目录 问题描述 解决思路 柳暗花明 解决办法 Linux实现高精度延时,网上大部分方法只能实现50us左右的延时精度,今天我们 ...

  9. 1024程序员节再次引爆星城!千万程序员线上线下互动,共迎新程序员时代

    10月23-24日,"2021长沙 · 中国1024程序员节"在长沙盛大开幕.大会以"开源开放 算据赋能--开启数字经济新时代"为主题,囊括岳麓尖峰对话.202 ...

  10. 程序改变世界!1024程序员节,给猿媛们的专属购书福利

    又是一年的1024程序员节! 我提前先说下福利吧,免得你没有看完就滑走了,当当已经打 5 折,这里可叠加 50,80 满减券,自营的所有书都可以,很多经典书籍可以买起来了,算下来差不多 3.7 折吧! ...

最新文章

  1. 视觉SLAM十四讲学习笔记——第四讲--李群与李代数
  2. Ubuntu与Mint哪个好?Linux运维发行版本推荐!
  3. Ulink2 No Ulink Device found 解决办法
  4. 暑期训练日志----2018.7.31
  5. switch 选择语句
  6. 算法提高 理财计划(java)
  7. java版本号分段比较_java比较版本号大小
  8. windows本地安装PLSQL
  9. FinePrint双面打印设置
  10. AMESim储能电气库用户手册(二)
  11. html div 同行居中,CSS:多个DIV在同一行居中显示的一种实现方法
  12. 一路编程,一路迷茫,一路醒悟,接着迷茫,再醒悟再迷茫
  13. 万物互联所必需的泛在物联网建设需要多少钱?成本低到不可想象
  14. 运行计算机配置gpedit,组策略(gpeditmsc)学习
  15. 88是python语言的整数类型_少儿Python编程_第三讲:常量变量和数据类型
  16. Linux 系统基础 — 用户和组(吐血总结,超详细,看这一篇就够了!dog)
  17. pythonmultiprocessing之 queue线程_python中的进程、线程(threading、multiprocessing、Queue、subprocess)...
  18. c语言中宏定义的字符替换#define M(x,y,z) x*y+z
  19. Zabbix监控系统系列之八:日志监控
  20. 10月英语——方法总比困难多

热门文章

  1. Django学习笔记之form组件的局部钩子和全局钩子
  2. 【滤波器】7. 带通滤波器
  3. 对于arm嵌入式系统的一点认识
  4. 用c语言编写一个汇编编译器,【提问】最早的汇编语言编译器如何诞生?
  5. 控制教程 —— 介绍篇:6.状态空间控制器设计
  6. 坯子库怎么导入插件_【亲测能用】草图大师Sketchup坯子库插件管理器SU2014-2019插件64位下载-羽兔网...
  7. Android定制实现上网限制
  8. 联想V470 安装win7系统 经验
  9. 迈普路由器访问控制列表配置命令_迈普路由器配置命令集合
  10. linux计划任务详解(附演示)