微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430G2:低功耗模式下的IO学习

MSP430G2:低功耗模式下的IO学习

时间: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 //MSP430G2231头文件

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

* 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 延时

}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top