玩转MSP-ESP430G2(基础篇)-----(八)低功耗模式补充

玩转MSP-ESP430G2(基础篇)

(八)低功耗模式补充

如果MSP430处于低功耗模式的工作状态,当可屏蔽中断和非可屏蔽中断源产生时,就会唤醒CPU进入中断处理程序。

  1. 入栈保护当前PC指针寄存器。
  2. 入栈保护当前SR状态寄存器。
  3. 清零SR状态寄存器(置GIE=0,屏蔽可屏蔽中断,并结束低功耗模式,CPU切换到Active模式)。
  4. 从中断向量表中取出中断向量到PC指针寄存器。
  5. 跳转到中断服务器程序开始执行。
  6. 中断执行完毕后执行RETI返回指令。
  7. 出栈恢复SR状态寄存器和PC指针寄存器的值。
  8. CPU恢复到原来的低功耗模式。

以上操作皆有硬件来完成
注意:如果在CPU返回原先低功耗模式时该表低功耗的模式,需要在中断处理程序中修改堆栈中的SR控制位的值。

相关代码:

#define C		(0x0001u)
#define Z   		(0x0002u)
#define N    		(0x0004u)
#define V     		(0x0100u)
#define GIE     	(0x0008u)
#define CPUOFF     	(0x0010u)
#define OSCOFF    	(0x0020u)
#define SCG0     	(0x0040u)
#define SCG1     	(0x0080u)

/*Low power modes coded with bits 4-7 in SR*/

#ifndef_IAR_SYSTEMS_ICC__/*Begin #defines for assembler*/
#define LPM0     (CPUOFF)
#define LPM1     (SCG0+CPUOFF)
#define LPM2     (SCG1+CPUOFF)
#define LPM3     (SCG0+SCG1+CPUOFF)
#define LPM4     (SCG0+SCG1+OSCOFF+CPUOFF)

/*End #defines for assembler */

#else /* Begin #defines for C */
#define LPMO_bits  (CPUOFF)
#define LPM1_bits (SCGO+CPUOFF)
#define LPM2_bits (SCG1+CPUOFF)
#define LPM3_bits (SCG1+SCG0+CPUOFF)
#define LPM4_bits (SCG1+SCG0+OSCOFF+CPUOFF)

#include"in430.h"

#define LPM0		_BIS_SR(LPM0_bits)	/*Exit Low Power Mode 0*/
#define LPM0_EXIT  	_BIS_SR_IRO(LPM0_bits)	/*Exit Low Power Mode 0*/
#define LPM1  		_BIS_SR(LPM1_bits)      /*Exit Low Power Mode 1*/
#define LPM1_EXIT   	_BIS_SR_IRO(LPM1_bits)  /*Exit Low Power Mode 1*/
#define LPM2  		_BIS_SR(LPM2_bits) 	/*Exit Low Power Mode 2*/
#define LPM2_EXIT   	_BIS_SR_IRO(LPM2_bits)  /*Exit Low Power Mode 2*/
#define LPM3  		_BIS_SR(LPM3_bits) 	/*Exit Low Power Mode 3*/
#define LPM3_EXIT   	_BIS_SR_IRO(LPM3_bits)  /*Exit Low Power Mode 3*/
#define LPM4  		_BIS_SR(LPM4_bits) 	/*Exit Low Power Mode 4*/
#define LPM4_EXIT   	_BIS_SR_IRO(LPM4_bits)  /*Exit Low Power Mode 4*/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值