MSP430主系统时钟以及430的低功耗设置

2020-07-01来源: eefocus关键字:MSP430  主系统时钟  低功耗设置

如何将系统时钟设置到外部高频晶体振荡器,430的MCLK默认的是DCO的,如何安全的从DCO切换到外部晶体振荡器,这是一个很重要的步骤,因为经过此步骤,可以极大地提高430的处理能力,DCO在内部,可以为cpu提供强劲稳定的时钟


#include


void  main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

   

  volatile unsigned int i;

  P5DIR |=BIT4;//设置P5.4为输出

  P5SEL |=BIT4;//设置片内主系统时钟的输出

 

  //由这段代码设置如何将DCO切换到高频晶体振荡器

  BCSCTL1 &=~XT2OFF;//~0x80

  do

  {

      IFG1 &=~OFIFG;//OFIFG为1表示外部晶体振荡器失效

      for(i = 0xff;i>0;i--);//IFG1是Interrupt Flag 1

  }

  while((IFG1 & OFIFG));//表示振荡器已经起振

  BCSCTL2 |= SELM_2;//#define SELM_2  (0x80)   /* MCLK Source Select 2: XT2CLK/LFXTCLK */

  

  while(1);

 

}

 


低功耗模式的设置:


msp430内部有4种低功耗模式,在进入低功耗模式的时候,cpu停止,一般是由外部事件的响应才能唤醒cpu

由于IAR软件比较给力,所以进入低功耗模式的常用格式


比如:


进入低功耗模式2:LPM2;


退出低功耗模式2:LPM2_EXIT;


开启外部中断:_EINT():


关闭外部中断:_DINIT();


430外部中断的模式


#include


 main( void )

{


  BCSCTL1 |=DIVA_2;//(0x20) /* ACLK Divider 2: /4 */

  WDTCTL = WDT_ADLY_1000;//直接将看门狗定时器变成定时器,定时时间是1000毫秒

  IE1 =WDTIE;//打开定时器中断

 

  P2DIR |= BIT3;

 

  while(1)

  {

     unsigned int i;

     _BIS_SR(LPM3_bits +GIE);//进入低功耗模式3,这种时候,cpu停止工作,同时打开总的中断     //_BIS_SR是一个本增函数,

     //_BIS_SR()是一个本增函数,通过本函数可以对寄存器进行直接的操作

    //这句话等价于_EINT();

    // LPM3;

     

     P2OUT &=~BIT3;//相当于把第五位输出0

     for(i = 180000;i>0;i--);//延时

     P2OUT |= BIT3;//p3.5输出1

  }

  

}


#pragma vector =WDT_VECTOR

__interrupt void watchdag_timer(void)

{

    //__BIC_SR_IRQ(LPM3_bits);//从中断中,将低功耗模式退出,将cpu从睡眠模式唤醒

    LPM3_EXIT;//退出低功耗模式

}

关键字:MSP430  主系统时钟  低功耗设置 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501803.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:MSP430_SPI_Master_Read_Write
下一篇:MSP430FR6989功能介绍

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

TI MSP430系列单片机串口通信波特率计算方法
TI MSP430系列单片机,usart模块的波特率值设定是通过以下三个寄存器决定的:UxBR0,UxBR1,UxMCTL 波特率=BRCLK/N ,主要是计算出N。BRCLK:时钟源,可以通过寄存器设定何为时钟源; 通过寄存器UCAxCTL1的SSEL两位选择,01:ACLK,02:SMCLKN:波特率产生的分频因子。N=UxBR1+UxBR0+UxMCTL,其中UxBR1+UxBR0为整数部分,UxMCTL为设定小数部分,其中 UxBR1为高位,UxBR0为低位,两者结合起来为一个16位的字。举例说明:波特率=115200,时钟源=8MHz ,为外部晶体振荡器N=8000000/115200=69.44 。很明显
发表于 2020-06-06
Tinyos之使用Msp430Counter32khz获取系统时间
使用平台:TelosB 操作系统:TinyOs最近要为论文写实验数据,需要读取系统的时间,进行一些运算。Tinyos有提供Msp430Counter32khz 组件,该组件提供接口 Counter<T32khz,uint16_t> .该接口有如下命令和事件:1、get()命令调用该命令,会返回计数值。计数动作是从系统启动的时候就开始了。(如果操作系统配置为低功耗模式会停止计数)2、isOverflowpending()命令 是否有溢出(true /false)3、clearoverflow()命令清除挂起状态4、overflow()事件给出当前系计数值已经溢出的信号量。继续分析,得知该组件是有以下
发表于 2020-06-06
TinyOS在MSP430F2618上移植(一)
最新版本的TinyOS2.1.1,虽然增加了更多的平台支持,比如epic、shimmer,但是这些平台都有一个共同的局限性:采用的微控制器都是低端的MSP430系列,如MSP430F149、MSP430F1611。在一些应用场合,这些处理器已经不能达到性能要求,而基于ZigBee的开发平台,如TI推出的开发套件已经开始使用高性能的处理器,并且国内一些公司,如成都无线龙也都纷纷推出基于MSP430F2618和CC2520无线收发模块,这个模块自从它诞生就很好的支持了ZigBee,因为有TI的全力支持,并且相关的演示代码TI都已经准备好了。但是,目前还没有把TinyOS移植到MSP430F2618上的先例。网上很多人说,这个移植很简单
发表于 2020-06-06
TinyOS在MSP430F2618上移植(一)
TinyOS在MSP430F2618上移植(三)之LCD
本节记录串口TFT LCD在TinyOS上的移植。1.8寸LCD显示屏采用ST7735控制器,使用SPI接口实现控制、显示数据的传输。总体架构:分为3层结构,最底层位于相应的platforms中chips目录下,实现在特定平台上控制引脚连接,SPI接口连接,以及SPI配置。中间层实现了LCD基本操作,LCD初始化,提供给上层模块连接的接口,以及资源管理。最上层提供应用层模块连接的接口。在本架构中,中间层和最高层提供相同的接口LCD16,该接口提供的实现方法有english_string,clear,single_color等,以及写完成事件writeDone。不同的是在最高层提供的接口LCD16中,并没有真正实现接口的功能,而仅仅是
发表于 2020-06-06
两种方式实现TinyOS对MSP430F26&54系列的支持
第一种方式在Ubuntu 下TinyOS msp430 Toolchain mspgcc升级一文中已经作了详细分析,下面说说另一种方式实现TinyOS对MSP430高端系列单片机的支持。我们已经知道TinyOS的编译过程,ncc编译器编译得到app.c文件,接着使用mspgcc编译工具对目标代码进行编译生成需要的.hex文件。但是,要注意的是在ncc编译过程中也会连接msp430库文件,所以就不可能在没有mspgcc的支持下得到app.c文件。那么,这里就出现了问题,如果没有按照上述所提到的第一种方式升级mspgcc,应该如何正确的编译得到所需的文件呢?答案就是使用挂羊头卖狗肉的方法,具体的就是.platform文件不用修改
发表于 2020-06-06
Ubuntu下MSP430开发环境搭建
阅读 以下文章可搞定Ubuntu下搭建MSP430开发环境(MSPGCC)(一) Programming the MSP430 Launchpad on Ubuntumsp430G2553程序烧写方法:#include <msp430g2553.h> int main (void){        volatile int i;         /* Stop watchdog timer */        WDTCTL = WDTPW | WDTHOLD; 
发表于 2020-06-06
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved