3068|1

7172

帖子

195

TA的资源

五彩晶圆(高级)

楼主
 

【课后练习】launchpad课后练习十二 之低功耗模式2 [复制链接]

launchpad课后练习十二 之低功耗模式2

(前面一节已经把低功耗一些简单的概念解释了下,今天更进一小步)

 

1.       看下头文件里的有关低功耗的

 

#ifndef __IAR_SYSTEMS_ICC__ /* Begin #defines for assembler */

#define LPM0                (CPUOFF)

#define LPM1                (SCG0+CPUOFF)

#define LPM2                (SCG1+CPUOFF)

#define LPM3                (SCG1+SCG0+CPUOFF)

#define LPM4                (SCG1+SCG0+OSCOFF+CPUOFF)

 

#define LPM0_bits           (CPUOFF)

#define LPM1_bits           (SCG0+CPUOFF)

#define LPM2_bits           (SCG1+CPUOFF)

#define LPM3_bits           (SCG1+SCG0+CPUOFF)

#define LPM4_bits           (SCG1+SCG0+OSCOFF+CPUOFF)

 

#define LPM0      _BIS_SR(LPM0_bits)     /* Enter Low Power Mode 0 */

#define LPM0_EXIT _BIC_SR_IRQ(LPM0_bits) /* Exit Low Power Mode 0 */

#define LPM1      _BIS_SR(LPM1_bits)     /* Enter Low Power Mode 1 */

#define LPM1_EXIT _BIC_SR_IRQ(LPM1_bits) /* Exit Low Power Mode 1 */

#define LPM2      _BIS_SR(LPM2_bits)     /* Enter Low Power Mode 2 */

#define LPM2_EXIT _BIC_SR_IRQ(LPM2_bits) /* Exit Low Power Mode 2 */

#define LPM3      _BIS_SR(LPM3_bits)     /* Enter Low Power Mode 3 */

#define LPM3_EXIT _BIC_SR_IRQ(LPM3_bits) /* Exit Low Power Mode 3 */

#define LPM4      _BIS_SR(LPM4_bits)     /* Enter Low Power Mode 4 */

#define LPM4_EXIT _BIC_SR_IRQ(LPM4_bits) /* Exit Low Power Mode 4 */

#endif /* End #defines for C */

 

看到了上面的头文件,便可知LPM0 =  _BIS_SR(LPM0_bits)   所以进入低功耗和出低功耗都有两种写法,选择哪一个就看读者自己的喜好了。

 

2.       应用——进入和退出低功耗模式

 

P1.3出现下降沿的时候, P1的中断服务子程序退出低功耗模式

 则会再次运行_NOP();语句, 然后在进入底功耗

  课后练习十二之低功耗进阶.pdf (42.59 KB, 下载次数: 122)

 

[ 本帖最后由 常见泽1 于 2012-6-5 15:33 编辑 ]
 
点赞 关注(1)

回复
举报

7172

帖子

195

TA的资源

五彩晶圆(高级)

沙发
 

 

例程

  1. #include <msp430g2452.h>

    //P1中断服务子程序
    #pragma vector = PORT1_VECTOR
    __interrupt void P1_IRQ(void)
    {
    P1IFG = 0;
    LPM0_EXIT;
    }

    void main(void)
    {
    WDTCTL = WDTPW + WDTHOLD;
    P1DIR &= ~BIT3; // Set P1.3 to input
    P1IE |= BIT3; // 允许中断
    P1IES |= BIT3; // 下降沿中断
    _EINT();

    while(1)
    {
    _NOP();
    _BIS_SR(LPM0_bits);
    }
    }
复制代码

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表