Q1:1,MSP430进入LP 模式后,CPU 停止运行,那么,进入中断执行退出后,由于SR的恢复,导致还处于LP 模式,是否意味着,CPU 在退出中断后立即停止了呢?
2,也就是说,进入LP 模式后,要让非中断流程运行的话,只能在中断退出前把保存在堆栈里面的SR 修改了?3,由于中断自动恢复保存的寄存器,要想在中断程序里面修改堆栈里面的保存的SR,只能用汇编了?
Q2:1、是的。
2、是的。
3、是的。_BIS_SR_IRQ() 以及_BIC_SR_IRQ() 函数可用。

Q2:有个程序进入LPM3 后拿万用表测电流在40uA 左右,不是的datasheet里说的小于2uA。万用表2mA 档串接在电池和VCC 之间。甚至于我写了最基本的初始化函数和main函数如下,测试电流值仍然在40 多uA。我想知道如何才能准确测得LPM3 下的电流,或者说是否万用表本身有影响?因为我们的程序要求有至少5年电池寿命,用的125mA 的CR1632,需要耗电在2.8uA下才行。
A3:我和你做的东西是差不多的,也用的是F201X 或F21X1 的片子,所以也测量过这个,对这个经验我有这几方面:
1、万用表的问题:有些万用表最小是2mA档,根据测量仪器的特性,接近满量程时的测量数据较准确,所以2mA 档测量2uA的电流时,相差1000倍,极不精确。我测量时使用的是一块带有200uA档的DT830数字表,实测LPM3 下只有0.7uA,与F201X 手册上标注一致。
2、湿度与PCB防潮问题:如果是实验板,因为上边没有阻焊膜,很容易受潮造成板上漏电,所以这种低功耗的东西一定要密封好,建议成品直接用树脂或是胶封起来,哪怕是热熔胶,也比暴露在空气中强。我测试的时候,就因为对着板子喘了口气,就发现表上电流示数开始变大了——这个电流实在是太小了,小到不能忽视任何干扰了。另外,要是手摸了板上子特别是电源两端的话,这个直接会造成几十到几百微安的电流,所以用手拿着板子测是极不科学的,要是不拿板子表笔不好扎的话,建议去电子商场买一对勾夹子,我买的1.5一个,3 块钱一对。勾好以后把板子悬空放着最好。
3、电路内的损耗电流:尤其是RC 方式的SLOPE,要想省电就必须严格控制电容的容量,越大越费电,或是说,如果你的电话容有余量的话,就要严格控制充电时间,否则充的时间长了,也一样会发生耗电增加的情况。最注意的就是,不要充上电之后去睡,醒了再放电检测,那样因为漏电的关系,损耗最大,哪怕你的电
容容量很小也不行。
4、初始化的选择:初始化的时候,一定要把不用的东西全关掉,包括IO 口全置为输出,并输出为低电平,而且不要选择REN,或是像楼主的程序那样,REN 置0。建议的初始化就是所有的SEL=0,REN=0,DIR=0FFH,OUT=0。像楼主现在的初始化把P1SEL 置了三位,那样就把那些模块一直选通了,可能会增加耗电。最好是模
块在使用前就不打开。当然如果为了利用模块的高阻性能而常开对应的比较器或ADC 端口的话,建议置一下对应端口的CAPD,这样可以进一步的减少寄生电流的产生。

Q3:#include <intrinsics.h>
#include <io430x14x.h>
int main()
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
//initclock
init_clk();
init_io();
LPM0;
while(1);
}
Error[Pe020]: identifier "_BIS_SR" is undefined
以上程序为什么会出错?直接给SR 赋值也不成,并且到头文件中也没找到SR 的定义,这是出了什么问题呢?
TA0 的时钟选用0.5M 8分频,近似计数值63 为1ms,使用连续计数方式。
A3:将头文件改成
#include<msp430x14x.h>
#include<in430.h>
#include <io430x14x.h>即可正常运行。

Q4:低功耗设计中430接CMOS器件要注意?
A4:在低功耗产品设计中,当430的i/o 口与CMOS 器件接口时,比如LCD之类的,为了省电,LCD间歇供电,当LCD关断时,与之相连的430的i/o 口一定要设置为输入口或者设置为输出为1.否则LCD内部cmos器件的I/O口通过二极管导到其VCC上,这样MCU的电流变大了,功耗变的更大了.

Q5:程序总是不正确执行,运行就出现下述错误:CPU is OFF (Low Power Mode ) and interrupts are disa××ed! cannot excute Step/go到底是怎么回事?看了cpu 寄存器中cpuoff =1 的,但没有设置低功耗模式呀?
A5:查下晶振是否正常;程序不能正常运行是一步都不能走么?如果只是某个位置,看看程序对外围控制是否会让时钟或者电源受到影响;再次确认是否真的没有设置低功耗,注意看低功耗的宏定义。

Q6:当CPU 关闭后,在中断函数里面的计算,比如全局变量i 的累加等计算是由谁来执行的呢?为什么CPU关闭后还可以处理很多计算,赋值,判断等指令呢?
A6:在中断里CPU 是处于ACTIVE 模式的,进入中断后,DCO会自动起震,430 退出低功耗模式。

Q7:430 在低功耗的时候,闲置的口线应该是输入还是输出??
A7:不用的I/O口设置为输入时接地,或者设置为输出时悬空。

MSP430常见问题之工作模式和功耗类的更多相关文章

  1. MSP430常见问题之看门狗及定时器类

    Q1. 定时器两个中断TAIE 和CCIE,有什么区别?两个中断的中断向量一样吗?A1:TAIE 和CCIE指的是不同事件.TAIE指TAR 计数器溢出,从65535 到0 的变化,由TAIFG 引起 ...

  2. 【EF 5】结合项目实战分析EF三大工作模式之—Database First

    导读:所谓的EF的Databasefirst工作模式,是目前我们(不涉及社会领域)用的最广的一种模式,也是本次ITOO开发所采用的工作模式.本篇博客,就分析在项目中通过Database First模式 ...

  3. Spring源码解析之:Spring Security启动细节和工作模式--转载

    原文地址:http://blog.csdn.net/bluishglc/article/details/12709557 Spring-Security的启动加载细节   Spring-Securit ...

  4. .Net普通三层 到 工厂模式->线程内唯一+单元工作模式->WebService分布式三层

    在软件世界分层的思想无处不在 主要是为了提高软件系统的维护性,扩展性,复用性和解耦等 软件的三层构架是一种最基本的分层思想的体现 结构图大体如下: 如此一来,开发人员可以只关注其中一层,而无需关心下一 ...

  5. LoRa---她的芯片和她的几种工作模式

    LoRa对应的芯片------sx1278芯片 sx1278芯片为Semtech公司推出的具有新型LoRa扩频技术的RF芯片,具有功耗低.容量大.传输距离远.抗干扰能力强的优点.我接下来在这块芯片上进 ...

  6. rabbitmq官方的六种工作模式

    1.RabbitMq1.1介绍RabbitMQ是一个消息代理:它接受并转发消息.你可以把它当成一个邮局:当你想邮寄信件的时候,你会把信件放在投递箱中,并确信邮递员最终会将信件送到收件人的手里.在这个例 ...

  7. ST MCU_GPIO的八种工作模式详解。

    补充: N.P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS) GPIO的八种工作模式详解 浮空输入_IN_FLOATING带上拉输入_IPU带下拉输入_IPD模拟输入_AIN ...

  8. eMMC之分区管理、总线协议和工作模式【转】

    本文转载自:https://blog.csdn.net/u013686019/article/details/66472291 一.eMMC 简介 eMMC 是 embedded MultiMedia ...

  9. 再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结

    1. 前言 bxCAN是STM32系列最稳定的IP核之一,无论有哪个新型号出来,这个IP核基本未变,可见这个IP核的设计是相当成熟的.本文所讲述的内容属于这个IP核的一部分,掌握了本文所讲内容,就可以 ...

随机推荐

  1. 430单片机之定时器A功能的大致介绍

    总的来说,430单片机一共有三个定时器,定时器A,定时器B,还有就是看门狗定时器,这里我们主要是讨论430单片机的定时器A的功能,定时器A的功能是我目前见过最厉害的定时器,视频上说用好定时器A的话,对 ...

  2. Mongodb千万级数据在python下的综合压力测试及应用探讨

    http://rfyiamcool.blog.51cto.com/1030776/1329351

  3. REST和SOAP

    转自:http://blog.csdn.net/smstong/article/details/5312136 我感觉维基百科说的REST解释的就听明白的,摘录下来: 含状态传输(英文:Represe ...

  4. 【noip2012】疫情控制

    题意: 给出一颗n个节点有边权的树 和m个军队所在的位置 军队从某节点移动到相邻节点要花费边长度的时间 求最少要多少时间使得根节点(编号为1)到每个叶子的路径上最少有一支军队(根节点不能有军队) 题解 ...

  5. acm-DP整理

    一.背包 .各种01背包 void leastOne_Pack(int id, int num ) {//至少取一个: int i, j, c, v ; ; i <= num ; i ++ ) ...

  6. Hadoop概念学习系列之URI深入(三十二)

    ls  /   ------------------------  这是查本地Linux上的根 hadoop fs -ls /   ------------- 这是查hdfs上的根 或者,   had ...

  7. JavaScript一道面试题求y的值是? z 的值是? s的值是?

    原文:http://www.zhufengpeixun.cn/JavaScriptmianshiti/2014-04-01/287.html < script type = "text ...

  8. oracle强制使用索引

    select /*+ INDEX(表名,索引名称) */ col_1,...from xxx

  9. PowerDesigner 面向对象模型(OOM)

    PowerDesigner 面向对象模型(OOM)说明 nulljavasystemstringpowerbuilderclass   目录(?)[+]   一.     OOM 简介 Object- ...

  10. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...