新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MSP430G2:低功耗模式下的IO學(xué)習(xí)

MSP430G2:低功耗模式下的IO學(xué)習(xí)

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

MSP430最大的特點是超低功耗,本次學(xué)習(xí)的是超下的IO操作。

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

* 超低功耗頻率 1.5KHZ

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

* 超低功耗的范例

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

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

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

* 選擇模式2

* IFG1:SFR interrupt flag 1(Special Function)

* INTERRUPT SOURCE:Oscillator fault 晶振錯誤標(biāo)志位

* INTERRUPT FLAG:OFIFG

* DCO:digitally controlled oscillator 數(shù)字信號控制的晶振

* 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都是狀態(tài)標(biāo)志位

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

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

#include //231頭文件

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

* Function name: main

* Descriptions: 主函數(shù)

* 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 ,低頻晶振選擇內(nèi)部的超低功耗,超低頻率晶振。

IFG1 = ~OFIFG; // Clear OSCFault flag,清除晶振錯誤標(biāo)志位

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

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

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

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

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

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

for (;;) // 主循環(huán)

{

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 延時

}

}



評論


相關(guān)推薦

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

關(guān)閉