新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MSP430主系統(tǒng)時鐘以及430的低功耗設(shè)置

        MSP430主系統(tǒng)時鐘以及430的低功耗設(shè)置

        作者: 時間:2017-01-12 來源:網(wǎng)絡(luò) 收藏

          如何將系統(tǒng)時鐘設(shè)置到外部高頻晶體振蕩器,430的MCLK默認的是DCO的,如何安全的從DCO切換到外部晶體振蕩器,這是一個很重要的步驟,因為經(jīng)過此步驟,可以極大地提高430的處理能力,DCO在內(nèi)部,可以為cpu提供強勁穩(wěn)定的時鐘

        本文引用地址:http://www.104case.com/article/201701/342830.htm

          #include

          void main( void )

          {

          // Stop watchdog timer to prevent time out reset

          WDTCTL = WDTPW + WDTHOLD;

          volatile unsigned int i;

          P5DIR |=BIT4;//設(shè)置P5.4為輸出

          P5SEL |=BIT4;//設(shè)置片內(nèi)主系統(tǒng)時鐘的輸出

          //由這段代碼設(shè)置如何將DCO切換到高頻晶體振蕩器

          BCSCTL1 &=~XT2OFF;//~0x80

          do

          {

          IFG1 &=~OFIFG;//OFIFG為1表示外部晶體振蕩器失效

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

          }

          while((IFG1 & OFIFG));//表示振蕩器已經(jīng)起振

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

          while(1);

          }

          模式的設(shè)置:

          msp430內(nèi)部有4種模式,在進入模式的時候,cpu停止,一般是由外部事件的響應(yīng)才能喚醒cpu

            

         

          由于IAR軟件比較給力,所以進入低功耗模式的常用格式

          比如:

          進入低功耗模式2:LPM2;

          退出低功耗模式2:LPM2_EXIT;

          開啟外部中斷:_EINT():

          關(guān)閉外部中斷:_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是一個本增函數(shù),

          //_BIS_SR()是一個本增函數(shù),通過本函數(shù)可以對寄存器進行直接的操作

          //這句話等價于_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;//退出低功耗模式

          }



        關(guān)鍵詞: MSP430 低功耗

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 正阳县| 沽源县| 沾化县| 定西市| 怀化市| 当涂县| 云南省| 周宁县| 淳化县| 东光县| 永安市| 昌乐县| 南郑县| 台东县| 白沙| 洞头县| 固阳县| 兰西县| 平谷区| 富裕县| 吐鲁番市| 华容县| 杨浦区| 视频| 长宁县| 灵璧县| 七台河市| 和平区| 海阳市| 杭锦旗| 汝南县| 漾濞| 常熟市| 喜德县| 邯郸市| 新干县| 白水县| 和硕县| 尤溪县| 安吉县| 青岛市|