专栏中心

EEPW首页 > 专栏 > CC2430睡眠定时器实现唤醒

CC2430睡眠定时器实现唤醒

发布人:0750long 时间:2009-07-15 来源:工程师 发布文章
CC2430睡眠定时器实现唤醒

 


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

资源下载 2007-02-16

在系统可编程模拟器件ispPAC10及其应用

怪了!中性线发热被无视,载流量表咋没3 + 2、4 + 1芯电缆数据?

正式起诉罗唯仁 台积电更像是在表明态度

Allegro与英诺赛科联合推出全GaN参考设计,赋能AI数据中心电源

斩控式整流电源的单片机控制系统

Vicor将展示如何使用高密度DC-DC电源模块提升ATE吞吐量

Nexperia危机对半导体供应链、车企库存和替代器件影响的分析

具身神经智能、类脑芯片的进展与展望

闸流管和双向可控硅成功应用的十条黄金规则

MSP430的外围模块介绍

视频 2009-10-19

绝对干货!搞清10kV高压电缆参数中8.7/10和8.7/15区别就看这篇!

新思科技亮相微软Ignite大会,展示数字孪生赋能的制造流程优化框架

血糖仪研讨专场

心电仪研讨专场

视频 2009-10-19

运算放大器的单电源供电方法

付款解决方案

视频 2009-10-19

血氧仪研讨专场

视频 2009-10-19
更多 培训课堂
更多 焦点
更多 视频

技术专区