(8)MSP430F5529 系统工作模式

  第四章我们提到可以从电源层入手,达到从源头上控制功耗的目的。这一章   我们就会讲CPU工作模式,如何从次一级来控制功耗。

  不同工作模式下,CPU会禁用一些模块,从而达到控制功耗的目的。

PS同样那句话,“功耗太远”,一般都不会去更改工作模式,所以简单学习)

  简介几句话:

  ①改变工作模式会立即生效;

  ②发生中断时,当前的模式设置信息会被保存,以便恢复(除非中断服务程序中改变了工作模式);

  ③处于LPM4.5模式时,PMM的电源监管不会生效,所有的RAM和寄存器都会丢失,但是I/O口状态会锁定;

  ④从LPM4.5唤醒,有一套专门的流程,有兴趣就去看

  下面这张图很有意思,可以清楚的看清工作模式之间转换的流程与方向,以及每种工作模式是怎样设置的,又控制了哪些部分。

  BOR: Brown-Out Reset 低电压检测复位(欠压复位)

  POR: Power-On  Reset 上电复位

  PUC: Power-Up Clear  上电清除

  浅色部分表示一个事件,深色部分表示一种操作或设置

  ①设置工作模式主要是设置寄存器SR的SCG0、SCG1、OSCOFF、CPUOFF位,AM(Active Mode)模式时四位均置零,且系统默认为AM模式;

  ②除了AM,其余都为低功耗模式,处理器进入低功耗模式以后,一般由中断来唤醒。可以是外部中断,也可以是内部的定时器等中断;

  ③LPM0-LPM4模式下,外围模块都会正常工作,且RTC时钟不会停止;

  ④要进入LPM4.5这一模式(更少用),只需在LPM4的基础上多一个PMMREGOFF置位。该模式下,系统的所有时钟、内存和监督管理机    制都停了,连实时时钟RTC都禁止操作了。

  ⑤LPM0和LPM1一组,除了上图显示的特征外,该模式下SMCLK是选通的 (SMCLKOFF =0),DCO的时钟源如果是ACLK或者SMCLK,则DCO也是有效的;

  ⑥ LPM2和LPM3一组,除了上图显示的特征外,该模式下SMCLK是禁止的,DCO的时钟源如果是ACLK,则DCO也是有效的;

  ⑦MSP430的头文件对低功耗模式有详尽的定义,如:要进入低功耗模式0,可 在程序中直接写LPM0; 进入低功耗模式4,可以直接写LMP4。退出低功耗模式如下:

LPM0_EXIT; //退出低功耗模式0  //太方便了有木有    LPM4_EXIT; //退出低功耗模式4(LPM4.5除外)

总结实验:一个很有意思的程序

/*低功耗模式的体现,不用无限循环,程序也不会终止*/

/*大家会发现,LPM3后面的语句不会执行,程序只会定期执行一下中断服务程序,这是因为LPM3模式下MCLK和SMCLK、FLL都禁止了*/

#include <msp430.h>

void main(void)

{

WDTCTL=WDTPW+WDTCNTCL+WDTTMSEL+WDTIS1+WDTIS0;//WDT作定时器用

SFRIE1|=WDTIE;               //开看门狗中断

P1DIR|=BIT1+BIT2;             //P1.1接LED,设定为输出方向

P1OUT=BIT1+BIT2;

__enable_interrupt();         //开总中断

//_BIS_SR(GIE);  这句话的意思也是开总中断

/*这里掌握一个用法_BIS_SR( ):将括号内的变量置位*/

LPM3;                        //进入LPM3低功耗模式,此模式下SMCLK被禁止

P1OUT&=~BIT2;        //这句话执行不了,所以P1.2就会保持常亮,而不会变暗

}

#pragma vector=WDT_VECTOR

__interrupt void WatchTimer(void)

{

  P1OUT^=BIT1;    //定时翻转,以实现闪烁

}

文章摘录于:http://blog.lehu.shu.edu.cn/879836630/A449441.html

时间: 2024-08-06 07:55:47

(8)MSP430F5529 系统工作模式的相关文章

【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Architecture Reference Manual 文档 : http://download.csdn.net/detail/han1202012/8324641 一. ARM 芯片类型 1. ARM 分类 (1) ARM 分类类型(芯片 | 核 | 指令架构) ARM 分类 : -- ARM 芯片类型

apache 工作模式

我主要来说一下prefork和worker工作模式.      prefork的工作原理 如果不用"--with-mpm"显式指定 某种MPM,prefork就是Unix平台上缺省的MPM.它所采用的预派生子进程方式也是Apache1.3中采用的模式.prefork本身并没有 使用到线程,2.0版使用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为 最稳定的MPM之一. prefork的工作原理是,控制进程在最 初

ARM处理器工作模式

++++++++++++++++++++++++++++++++++++++++++ 本文转载自mr_raptor的专栏,感谢mr_raptor大神. http://blog.csdn.net/mr_raptor/article/details/6556157 ++++++++++++++++++++++++++++++++++++++++++ 1.1 ARM处理器工作模式 CPU的模式可以简单的理解为当前CPU的工作状态,比如:当前操作系统正在执行用户程序,那么当前CPU工作在用户模式,这时网

apache工作模式介绍

apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多中,目前主要有两种模式:prefork模式和worker模式 . prefork模式:这个多路处理模块(MPM)实现了一个非线程型的.预派生的web服务器,它的工作式类似于Apache 1.3.它适合于没有线程安全库,需要避免线程兼容性问题的系统.它要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求. 这个MPM具有很强的自我调节能力,只需要很少的配置指令调整.最重要的是将M

VMware虚拟机三种工作模式

工作模式 VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,就应该先了解一下这三种工作模式. bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器.在桥接模式下,你需要手工为虚拟系统配置IP地址.子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信.同时,由于这个虚拟系统是局域网中的一

Apache优化配置——工作模式

Apache所运行的硬件环境都是对性能影响最大的因素 各个硬件指标中,对性能影响最大的是内存,其次是硬盘的速度 ●Apache的工作模式 1.prefork模式(一个 非线程型的) ⑴.主要工作方式:当Apache服务器启动后,mpm_prefork模块会预先创建多个子进程(默认为5个),每个子进程只有一个线程,当接收到客户端的请求后,mpm_prefork模块再将请求转交给子进程处理,并且每个子进程同时只能用于处理单个请求.如果当前的请求数将超过预先创建的子进程数时,mpm_prefork模块

epoll的两种工作模式

epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,只要还有没有处理的事件就会一直通知. 以代码来说明问题: 首先给出server的代码,需要说明的是每次accept的连接,加入可读集的时候采用的都是ET模式,而且接收缓冲区是5字节的,也就是每次只接收5字节的数据: Java代码   #include <

Apache的工作模式

参考链接: http://httpd.apache.org/docs/2.4/ http://httpd.apache.org/docs/2.4/mpm.html/  MPM是Multi-Processing Modules,表示Apache中的多路处理模块,目前在Linux上的Apache 2.2/2.4中包括三种模式:prefork.worker和event模式 1,查看apache 使用的工作模式 /usr/local/apache2/bin/httpd -l  Compiled in m

自己学Docker:4.開始了解Docker的工作模式

上一章在学习中有2个疑问: 怎样保存我们在容器里的改动? 假设apt-get假设不能安装时,怎样在Docker中安装软件? 关于run创建的容器问题 对于第一个问题.原来每次运行(当非root用户时,须要在命令前加sudo) sudo docker run -i -t docker/whalesay /bin/bash 都会创建一个新的容器,这一点应该是明白的. 可是退出时,创建的容器并没有被删除,还是存在与系统中的.通过, sudo docker ps -a 能够查看. 列表中.第一列CONT