您的位置 首页 新品

MSP430功耗相关寄存器

当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控

当体系时钟产生器根本功能树立之后,CPU内状况寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗操控位。只需恣意中止被呼应,上述操控位就被压入仓库保存,中止处理之后,又可康复从前的作业方法。在中止处理子程序履行期间,经过直接拜访仓库数据,能够操作这些操控位;这样答应程序在中止回来(RETI) 后,以另一种功耗方法持续运转。

各操控位的效果如下:

SCG1: 复位,使能SMCLK;置位,制止SMCLK。

SCG0:复位,激活直流产生器,只要SCG0置位,而且DCOCLK没有被用作MCLK或SMCLK时,直流产生器才干被制止。

OSCOFF:复位,激活LFXT1,只要当OSCOFF被置位而且LFXT1CLK不用于MCLK或SMCLK时,FLXT1才干被制止;当运用晶体振荡器封闭选项OSCOFF时,需求考虑晶体振荡器的发动设置时刻

CPUOFF:复位,激活MCLK;置位,封闭MCLK。

操控位SCG1、SCG0、CPUOFF、OSCOFF可由软件配制成六种不同的作业形式:

作业形式 操控位 CPU状况、振荡器及时钟

SCG1=0 CPU活动

SCG0=0 MCLK活动

AM CPUOFF=0 SMCLK活动

OSCOFF=0 ACLK活动

SCG1=0 CPU制止

LPM0 SCG0=0 MCLK制止

OSCOFF=0 SMCLK活动

CPUOFF=1 ACLK活动

SCG1=0 CPU制止

MCLK制止

LPM1 SCG0=1假如DCOCLK位用作MCLK或SMCLK,则直流产生器制止,

不然,依然活动

OSCOFF=0 SMCLK活动

CPUOFF=1 ACLK活动

SCG1=1 CPU制止

假如DCO未被用作MCLK或SMCLK,主动制止

SCG0=0 MCLK制止

LPM2 OSCOFF=0 SMCLK制止

CPUOFF=1 ACLK活动

SCG1=1 CPU制止

DCO被制止,直流产生器被制止

SCG0=1 MCLK制止

LPM3 OSCOFF=0 SMCLK制止

CPUOFF=1 ACLK活动

SCG1=1 CPU制止

SCG0=1 DCO被制止,直流产生器被制止

LPM4 OSCOFF=1一切振荡器中止作业

MCLK、SMCLK制止

CPUOFF=1 ACLK制止

低功耗的规划技巧问题

1.LPM4:在振荡器封闭形式期间,处理机的一切部件作业中止,此刻的电流耗费最小。此刻只要在体系上电电路检测到低点电平或任一恳求异步呼应中止的外部中止事情时才会重新作业。因此在规划应含有或许需求用到的外部中止才选用这种形式,不然产生不行意料的成果。

2.LPM3:在DC产生封闭期间,只要晶振是活动的。但此刻设置根本时序条件的DC产生器的DC电流被封闭。由于此电路的高阻规划,使功耗被按捺。当从DC封闭到发动DC需求一段时刻(ns~us)

3.LPM2:在此期间晶振和DC产生器是作业的,所以能够完成快速发动

4.LPM1:在此期间振荡器现已作业,所以不存在发动延时问题

_BIS_SR(LPM3_bits) _BIC_SR_IRQ(LPM3_bits)

LPM3 LPM3_EXIT

体系呼应中止过程:

1.硬件主动中止服务

a.PC入栈

b.SR入栈

c.中止向量赋给PC

d.GIE、SCG1、CPOOFF和OSCOFF清楚

e.IFG标志位铲除(单源中止标志比方WDTIFG)

2.履行中止处理子程序

3.履行RETI指令

4.SR出栈

5.PC出栈

低功耗使用

void main(void)

{

WDTCTL=WDT_ADLY_1000;

IE1 | = WDTIE;

P1DIR | = 0X01;

_EINT();

for(;;)

{

LPM3;

_NOP();

}

}

interrupt[WDT_VECTOR] watchdog_timer(void)

{

P1OUT ^ = 0X01;

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/259049.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部