您的位置 首页 厂商

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

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

  怎么将体系时钟设置到外部高频晶体振荡器,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)

  {

  //__B%&&&&&%_SR_IRQ(LPM3_bits);//从中止中,将低功耗形式退出,将cpu从睡觉形式唤醒

  LPM3_EXIT;//退出低功耗形式

  }

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/209207.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部