zoukankan      html  css  js  c++  java
  • MSP430主系统时钟以及430的低功耗设置

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

    #include <msp430x14x.h>
    
    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 <msp430x14x.h>
    
     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;//退出低功耗模式
    }

    版权所有,转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3404759.html

  • 相关阅读:
    网络编程
    WPF DataGrid点击有效区域Check
    WPF DataGrid显示表格中编辑Check数据
    WPF DataGrid显示按上下键移动数据、多个CheckBox勾选
    Python 下载小说到本地
    WPF 条件不等于时触发改变颜色
    WPF 反射 排序 、启动定时器等
    # WPF DataGrid文本编辑验证
    Nginx 与 X-Forwarded-For
    如何正确设置nginx中remote_addr和x_forwarded_for参数
  • 原文地址:https://www.cnblogs.com/fengdashen/p/3404759.html
Copyright © 2011-2022 走看看