"); //-->
CC2430的睡眠定时器(SLEEP TIMER)是一个24位的计数器,可以用来作为唤醒中断(仅PM0-2)下面有效,ST的计数时钟是32.768K,向上计数,可以和一个24数比较以产生中断,在PM2仍然工作,可以产生中断和触发DMA。
这里只讲如何设置进入低功耗模式后的唤醒时间,ST0,ST1,ST2可读可写,但是我觉得这3个寄存器类似于串口的BUFFER,实际上是两个寄存器。因此就计数来说,ST(指ST0,ST1,ST2 下同)是不可写的,我这里把它称为STa,对于设置比较数来说,ST是不可读的,我把它称为STb。这样的话相实现定时唤醒就要利用STb和STa的数差,相差32768,就表示1秒唤醒一次,相差n*32768表示n秒唤醒一次,这里的n可以是小数。下面是实现唤醒的代码:
void Set_ST_Period(UINT16 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)
{
OPEN_ST_INT() ;//开中断
while(1)
{
Set_ST_Period(10);//10sec 一次唤醒
SET_POWER_MODE(PM2);//进入低功耗模式
}
}
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
什么是配电级数?为什么低压系统通常不超过三级?
面向Home Bus系统的电感选型指南
在51上用P1口模拟I2C
在系统可编程模拟器件ispPAC10及其应用
怪了!中性线发热被无视,载流量表咋没3 + 2、4 + 1芯电缆数据?
正式起诉罗唯仁 台积电更像是在表明态度
2002年中国工程院香山科学会议情况综述
交女朋友的悲惨条件
Allegro与英诺赛科联合推出全GaN参考设计,赋能AI数据中心电源
历史上的今天:5月20日
斩控式整流电源的单片机控制系统
Vicor将展示如何使用高密度DC-DC电源模块提升ATE吞吐量
Nexperia危机对半导体供应链、车企库存和替代器件影响的分析
具身神经智能、类脑芯片的进展与展望
镉镍电池放电器电路
ATCl05的封装形式及引脚排列图
山东大学确定2002-2005年发展目标
闸流管和双向可控硅成功应用的十条黄金规则
MSP430的外围模块介绍
MAX712/MAX713的引脚排列方式
绝对干货!搞清10kV高压电缆参数中8.7/10和8.7/15区别就看这篇!
新思科技亮相微软Ignite大会,展示数字孪生赋能的制造流程优化框架
从陈至立低票当选国务委员看中国的高等教育
MAX712的内部结构框图
血糖仪研讨专场
心电仪研讨专场
运算放大器的单电源供电方法
由ATCl05构成的充电器实用电路
付款解决方案
血氧仪研讨专场