• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430G2:低功耗模式下的IO學習

    MSP430G2:低功耗模式下的IO學習

    作者: 時間:2013-01-16 來源:網絡 收藏

    MSP430最大的特點是超低功耗,本次學習的是超下的IO操作。

    /**********************************************************

    * 超低功耗頻率 1.5KHZ

    * P1.0有1/100的周期激活

    * 超低功耗的范例

    * ACLK = VL0, MCLK = VLO/8 ~1.5kHz, SMCLK = n/a,主時鐘選擇超低功耗,超低頻率的內部晶振的8分頻,

    * VLO:Internal Very-Low-Power Low-Frequency Oscillator 內部的超低功耗,低頻率振蕩器

    * BCSCTL3 是 Basic clock system control 3 ,Mode 2 for LFXT1。

    * 選擇模式2

    * IFG1:SFR interrupt flag 1(Special Function)

    * INTERRUPT SOURCE:Oscillator fault 晶振錯誤標志位

    * INTERRUPT FLAG:OFIFG

    * DCO:digitally controlled oscillator 數字信號控制的晶振

    * BCSCTL2 :Basic clock system control 2

    * SELM_3:MCLK Source Select 3: LFXTCLK

    * DIVM_3:MCLK Divider 3: /8 MCLK時鐘8分頻

    * MCLK: Main clock 主時鐘

    * SCG1 + SCG0都是狀態標志位

    * LFXT1:Low Frequency XT1 (低頻晶振1)

    ***************************************************************/

    #include //231頭文件

    /**********************************************

    * Function name: main

    * Descriptions: 主函數

    * input parameters: 無

    * output parameters: 無

    * Returned value: 無

    * 超下的IO端口操作

    **************************************************************/

    void main(void)

    {

    volatile unsigned int i; // Volatile to prevent removal

    WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer 禁止看門狗

    BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO ,低頻晶振選擇內部的超低功耗,超低頻率晶振。

    IFG1 = ~OFIFG; // Clear OSCFault flag,清除晶振錯誤標志位

    __bis_SR_register(SCG1 + SCG0); // Stop DCO 禁止數控晶振

    BCSCTL2 |= SELM_3 + DIVM_3; // MCLK = LFXT1/8 主時鐘源選擇LFXT1,分頻系數選擇8分頻。

    P1DIR = 0xFF; // All P1.x outputs 所有的P1端口都設置為輸出

    P1OUT = 0; // All P1.x reset P1端口值都清零

    P2DIR = 0xFF; // All P2.x outputs 所有的P1端口都設置為輸出

    P2OUT = 0; // All P2.x reset P2端口值都清零

    for (;;) // 主循環

    {

    P1OUT |= 0x01; // P1.0 set P1.0置位

    for (i = 10; i > 0; i--); // Delay 1x 延時

    P1OUT = ~0x01; // P1.0 reset P1.0清零

    for (i = 1000; i > 0; i--); // Delay 100x 延時

    }

    }



    評論


    技術專區

    關閉
    主站蜘蛛池模板: 九龙坡区| 阜康市| 邹平县| 上栗县| 崇左市| 西昌市| 东安县| 靖江市| 武强县| 赤壁市| 阜康市| 固安县| 马鞍山市| 吉林省| 河源市| 丽水市| 金塔县| 阆中市| 博野县| 噶尔县| 施秉县| 木兰县| 子洲县| 塔城市| 乌拉特前旗| 板桥市| 阿鲁科尔沁旗| 常德市| 砀山县| 汽车| 开远市| 宁阳县| 西峡县| 密云县| 江川县| 长子县| 田林县| 岳普湖县| 宁津县| 涟水县| 宿迁市|