CC2530学习(四)休眠模式配置及外部中断/睡眠时钟唤醒

这篇博客介绍了CC2530芯片在休眠模式下的配置,包括PM0到PM3四种模式的设置,重点讨论了外部中断和睡眠时钟中断的唤醒机制。通过实例代码展示了如何进入PM3和PM2模式,并利用外部中断和睡眠定时器进行唤醒。实验中,设备在LED闪烁后进入相应休眠模式,由中断触发唤醒,实现了低功耗操作。
摘要由CSDN通过智能技术生成

一、硬件连接

LED灯阴极接地,通过三极管控制阳极导通状态。按钮电平检测引脚接上拉电阻,当按键按下时电平被拉低。

二、寄存器描述(外部中断)

(一)、睡眠模式设置

睡眠模式通过寄存器**SLEEPCMD的[1:0]**来设置。

在这里插入图片描述

其中各个模式的作用如图所示。

在这里插入图片描述

  • PM0 16/32M高速晶振启动 32768晶振启动,数字核心模块正常工作
  • PM1 16/32M高频晶振关闭 32768晶振启动,数字核心模块正常工作
  • PM2 16/32M高速晶振关闭 32768晶振启动,数字核心模块关闭,系统通过RESET/External Interrupt/SLEEP TIMER唤醒
  • PM3 晶振全部关闭,数字核心模块关闭,系统只能通过RESET/External Interrupt唤醒
(二)、电源模式控制设置

开启SLEEPCMD.MODE设置的电源睡眠模式,通过置位PCON的bit0设备进入电源模式。当该位设置为0时唤醒设备。

在这里插入图片描述

三、示例代码(外部中断)

#include <ioCC2530.h>

#define LED P0_1

void delay_ms(int xms)
{
        
  int  i,j;
  for(i=xms;i>0;i--)
    for(j=587;j>0;j--);
}

void LED_Init(void)
{
   
  P0SEL &= ~0X02;
  P0DIR |= 0X02;
}

void Key_Init(void)
{
   
  P0IEN |= 0X04;//使能P0.2中断
  PICTL |= 0X01;//设置全部端口中断方式为下降沿触发
  IEN1 |= 0X20;//允许P0口中断
  P0IFG = 0X00;//初始化中断标志位
  EA = 1;//开中断  
}
/*
PM0 16/32M高速晶振启动 32768晶振启动,数字核心模块正常工作
PM1 16/32M高频晶振关闭 32768晶振启动,数字核心模块正常工作
PM2 16/32M高速晶振关闭 32768晶振启动,数字核心模块关闭,系统通过RESET/External Interrupt/SLEEP TIMER唤醒
PM3 晶振全部关闭,数字核心模块关闭,系统只能通过RESET/External Interrupt唤醒
*/
void SysPowerMode(char mode
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值