CC2530定时器唤醒
睡眠定时器用于设置芯片进入和退出低功耗模式之间的周期,需要配置如下寄存器:
ST0
:睡眠定时器的Bit_0
至Bit_7
。ST1
:睡眠定时器的Bit_8
至Bit_15
。ST2
:睡眠定时器的Bit_16
至Bit_23
。
#include <ioCC2530.h>#define uint unsigned int
#define uchar unsigned char#define UINT8 unsigned char
#define UINT32 unsigned long#define LED2 P1_1void Delayms ( uint );
void InitLed ( void );
void SysPowerMode ( uchar sel );void Delayms ( uint xms ) {uint i, j;for ( i = xms; i > 0; i-- )for ( j = 587; j > 0; j-- );
}void InitLed ( void ) {P1DIR |= 0x02;P1INP |= 0X02;LED2 = 0;
}void SysPowerMode ( uchar mode ) {uchar i, j;i = mode;if ( mode < 4 ) {SLEEPCMD |= i;for ( j = 0; j < 4; j++ );PCON = 0x01;} else {PCON = 0x00;}
}void Init_SLEEP_TIMER ( void ) {ST2 = 0X00;ST1 = 0X00;ST0 = 0X00;EA = 1;STIE = 1;STIF = 0;
}void Set_ST_Period ( uint sec ) { /* 设置睡眠时间 */UINT32 sleepTimer = 0;sleepTimer |= ST0;sleepTimer |= ( UINT32 ) ST1 << 8;sleepTimer |= ( UINT32 ) ST2 << 16;sleepTimer += ( ( UINT32 ) sec * ( UINT32 ) 32768 );ST2 = ( UINT8 ) ( sleepTimer >> 16 );ST1 = ( UINT8 ) ( sleepTimer >> 8 );ST0 = ( UINT8 ) sleepTimer;
}void main ( void ) {uchar i;InitLed();Init_SLEEP_TIMER();while ( 1 ) {for ( i = 0; i < 6; i++ ) {LED2 = ~LED2;Delayms ( 200 );}Set_ST_Period ( 3 ); /* 重新进入睡眠模式 */SysPowerMode ( 2 ); /* 进入PM2低频晶振模式 */}
}#pragma vector = ST_VECTOR
__interrupt void ST_ISR ( void ) { /* 中断唤醒 */STIF = 0; /* 清标志位 */SysPowerMode ( 4 ); /* 进入正常工作模式 */
}
CC2530定时器唤醒相关推荐
- CC2530基础实验:(11)系统睡眠唤醒--定时器唤醒
目录 前言 一.实验相关电路图 二.实验相关理论与寄存器 三.源码分析 前言 1) 为什么要睡眠? Zigbee的特点就是远距离低功耗的无线传输设备,节点模块闲时可以 进入睡眠模式,在需要传输数据时 ...
- CC2530睡眠唤醒模式
CC2530睡眠唤醒模式 睡眠唤醒模式可以让mcu进入睡眠模式,并在规定的时间唤醒.一般情况下,唤醒后,可执行相关任务,完成任务后需要手动再次进入睡眠工作,并设置唤醒时间.代码如下: #include ...
- CC2530定时器1使能
CC2530定时器1 CC2530有5个定时器(定时器1,定时器2,定时器3,定时器4,睡眠定时器),定时器1是一个16位定时器,有3种模式分别是自由运行模式.模模式.正计数/倒计数模式. 1)自由运 ...
- CC2530 定时器应用
CC2530 定时器应用 任务分析 知识储备 相关寄存器知识 T1CTL-定时器1的控制和状态 T1CCTL0-定时器1通道0捕获/比较控制 T1CC0H和T1CC0L-定时器1通道0捕获/比较值的高 ...
- 13、ZigBee 开发教程之基础篇—CC2530 睡眠定时器唤醒系统
文章目录 1.实验目的 2.实验设备 3.实验相关电路图 4.实验相关寄存器 5.源码分析 6.实验现象 1.实验目的 1)为什么要睡眠? ZigBee 的特点是远距离低功耗的无线传输设备,节点模 ...
- 8、ZigBee 开发教程之基础篇—CC2530 定时器T3的使用
文章目录 1.实验目的 2.实验设备 3.实验相关电路图 4.实验相关寄存器 5.源码分析 1.实验目的 1)通过实验掌握 CC2530 芯片 GPIO 的配置方法 2)掌握 Led 驱动电路及开关 ...
- CC2530定时器T1产生PWM
最近搞PWM波输出,参考了一下网上的代码自己总结出CC2530 PWM的配置过程:(此处以T1为例) 配置PWM模式需参考CC2530用户手册中"表7-1 外部设备I/O引脚映射" ...
- cc2530 定时器控制LED灯以不同的频率闪烁
1.cc2530有两个LED灯: 定时器有4种工作方式; 可通过定时器 T1 以及 定时器 T3同时来分别控制LED灯的闪烁,我们让定时器1处于8分频的自由模式下,T1 为16位的计数器,计数器每8/ ...
- CC2530定时器3
CC2530用定时器3完成对LED1周期为2s控制 首先大家需要了解的是CC2530有4个定时器,分别是,定时器1~4和睡眠定时器,我们常用的是定定时器1,可是今天看到课后的习题需要用定时器3,来完成 ...
- cc2530定时器和捕获比较_STM32学习日志——输入捕获实验(20.06.26)
今天学习的是通用定时器的第三个功能--输入捕获,它的作用是检测到TIMx_CHx的边沿跳变(上升沿或下降沿),即可将当前定时器的存放在捕获/比较寄存器中. 输入捕获滤波器可以通过TIMx_CCMR1的 ...
最新文章
- 团队作业8----第二次项目冲刺(Beta阶段) 第六天
- Linux中Apache2fail,apache2 启动失败,出现下列错误,请问怎么解决,谢谢
- WordPress按钮秒支付插件发布,支持微信支付,支付宝,银联,京东,苏宁,易宝支付...
- android 开发 命名规范
- SAP UI5 框架画Button的入口
- C++标准库与Java基础类对照表
- Huffman编码(Huffman树)
- Knative 驾驭篇:带你 '纵横驰骋' Knative 自动扩缩容实现
- [CareerCup] 14.1 Private Constructor 私有构建函数
- 安装IDEA,还有插件推荐
- PN结的形成及PN结工作原理(单向导电)讲解
- dwcs6 php 教程,初学者如何使用Dreamweaver CS6 (Dreamweaver CS6详细使用教程)
- Android客户端支付宝支付
- LayoutInflator#Inflate(...)
- 运动耳机怎么选,盘点目前适合运动的几款耳机
- hexo大家博客时浏览量和访客量异常
- 有关直方图的常用操作
- css如何改变视频大小,调整视频的大小取决于屏幕尺寸少用CSS
- elasticsearch OOM
- html5微信语音转文字,文字转换语音软件:我有个朋友不会识字 怎么能把微信上别人发给他的文字转换成语音...
热门文章
- matlab自动交易系统 浏览
- 什么是推荐系统以及应用场景
- iOS13 暗黑模式(Dark Mode)适配之OC版
- SQL Server从入门到精通pdf
- 2019matlab安装
- python操作腾讯文档_python查看文档
- python函数手册中文,python函数中文手册.doc
- [已解决]安装MPICH2(x64)时显示需要安装NET FRAMEWORK 2.0.50727
- MFC建立C语言项目,mfc开发(mfc项目开发实例85个)
- Java思维导图(3)