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  主系统时钟  低功耗设置 引用地址:MSP430主系统时钟以及430的低功耗设置

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

推荐阅读最新更新时间:2024-10-31 21:07

MSP430状态寄存器SR的使用实验及小结
研究LCD128128驱动程序时,看到一个语句LCD_SDA = CY; 当时明白C51中CY是进位标志,这种写法有点意思,好象很简洁。原程序见下: //传送指令 voidtransfer_command_lcd(unsigned char cmd) { int k; LCD_CS = 0; LCD_RS= 0; for (k=0; k 8; k++) { cmd = cmd 1; LCD_SCL = 0; LCD_SDA = CY; LCD_SCL = 1; } LCD_CS=1; } 因为要用MSP430驱动,很多语句要改,这个C
[单片机]
<font color='red'>MSP430</font>状态寄存器SR的使用实验及小结
MSP430F1121内置比较器设计高精度A/D变换器
Σ-ΔA/D技术具有高分辨率、高线性度和低成本的特点。本文基于TI公司的MSP430F1121单片机,介绍了采用内置比较器和外围电路构成类似于∑-△的高精度A/D实现方案,适合用于对温度、压力和电压等缓慢变化信号的采集应用。 在各种A/D转换器中,最常用是逐次逼近法(SAR)A/D,该类器件具有转换时间固定且快速的特点,但难以显著提高分辨率;积分型A/D 有较强的抗干扰能力,但转换时间较长;过采样Σ-ΔA/D由于其高分辨率,高线性度及低成本的特点,正得到越来越多的应用。根据这些特点,本文以TI公司的MSP430F1121单片机实现了一种类似于Σ-ΔA/D技术的高精度转换器方案。 MSP430F1121是16位RISC结构的
[单片机]
用<font color='red'>MSP430</font>F1121内置比较器设计高精度A/D变换器
MSP430单片机对片内FLASH的读写操作程序范例
// 参数: wAddr 为地址 , 范围 0x1000~0xFFFF void ReadFlash(U16 wAddr,U8 *bBuf,U8 bLen) { while (bLen--) *bBuf++=*(U8 *)wAddr++; return; } void WriteFlash(U16 wAddr,U8 *bBuf,U8 bLen) { U8 reg1,reg2; reg1=_BIC_SR(GIE); reg2=IE1;IE1=0; // 保护原来中断标志,并关闭有关中断。 // 写一个字节数据到指定flash地址 while (bLen--)
[单片机]
MSP430单片机低功耗控制与系统工作模式详解
CPU内状态寄存器SR中的SCG1、SCG2、OscOff和CPUOff位是 重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可以恢复先前的工作方式。在中断处理子程序执行期间,通过间接访 问堆栈数据,可以操作这些位;这样允许程序在中断返回(RETI)后,以另一种功耗方式继续运行。各控制位作用如下: SCG1:当SCG1复位时,使能SMCLK;SCG1置位则禁止SMCLK。 SCG0:当SCG0复位时,直流发生器被激活,只有SCG0被置位且DCOCLK信号没有用于MCLK或SMCLK,直流发生器才能被禁止。 OscOff:当OscOff复位时,LFXT晶体振荡器激活,只有当OscOff
[单片机]
MSP430F149;一、TIMEA
定时器A的逻辑图 由下图可以知道定时器有大致两部分: 时钟模块: 捕获比较 定时器模式说明 00:计数器停止 01:计数器从0到taccr0;taccro是手动设定的值 10:计数器从0到0xFFFF(2^16=65536)然后到0再从0到65535,一直循环; 11:计数器从0到taccr0再到0;然后,从0到taccr0再到0;循环0到taccr0再到0;(taccro是手动设定的值) 用到的寄存器介绍 用到的寄存器说明 主要是:时钟源选择;输入时钟分频(比如之前时钟源分频得到的时钟信号,在这里可以再分频,得到需要的震荡频率);时钟模式控制,上面说过的;中断使能和中断标志; 这个就是用来计数的,一个
[单片机]
<font color='red'>MSP430</font>F149;一、TIMEA
MSP430低功耗探讨
一、五种低功耗模式,层层递进。主要通过关闭时钟系统中的部件来实现。用LPM0到LPM4的宏定义来调用。 二、严格上讲AGND和DGND称之为“模拟地”和“数字地”是不科学的。模拟地:对地电位敏感的地线。数字地:对地电位不敏感的地线。 三、大电流,强干扰的地线可细分为“功率地”,单独对待,如LED数码管的GND单独拉一地线回到电源。数码管的大电流对电路的其他部分都不影响。 四、数据发送可以用FIFO来解决高速设备和低速设备之间的连接问题。高速运行的CPU就像一个粗水管,串口就像一个细水管。FIFO就像一个漏斗。CPU从头指针(写指针)来写入数据;串口从未指针(读指针);实现随时写入,不阻塞CPU运行的目的。在单片机中用指
[单片机]
MSP430单片机看门狗操作
int main( void ) { WDTCTL=WDTPW+WDTHOLD; //关看门狗 BCSCTL1 =CALBC1_1MHz; //设定DCO 为1MHZ DCOCTL =CALBC1_1MHZ; //选择定时模式,并选时钟源为ACLK,即定时时间为ACLK/32768(WDTISx=0) WDTCTL=WDTPW+WDTTMSEL+WDTSSEL+WDTCNTCL; P1OUT |=BIT0; //LED 使能 P1DIR |=BIT0; IE1 |=WDTIE; //使能WDT 定时中断 _BIS_SR(GIE+LPM3_bits); //进入LPM3 模式,ACLK(WDT 时钟源)仍工作,并使能总中断 ret
[单片机]
uC/OS-II的任务切换机理及中断调度优化
引 言   在嵌入式操作系统领域,由Jean J. Labrosse开发的μC/OS,由于开放源代码和强大而稳定的功能,曾经一度在嵌入式系统领域引起强烈反响。而其本人也早已成为了嵌入式系统会议(美国)的顾问委员会的成员。   不管是对于初学者,还是有经验的工程师,μC/OS开放源代码的方式使其不但知其然,还知其所以然。通过对于系统内部结构的深入了解,能更加方便地进行开发和调试;并且在这种条件下,完全可以按照设计要求进行合理的裁减、扩充、配置和移植。通常,购买RTOS往往需要一大笔资金,使得一般的学习者望而却步;而μC/OS对于学校研究完全免费,只有在应用于盈利项目时才需要支付少量的版权费,特别适合一般使用者的学习、研究和开发。
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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