专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

msp430 Low Power Module

作者:佚名   来源:不详   点击数:  更新时间:2014年08月31日   【字体:

 #include <msp430x14x.h>

#include "BoardConfig.h"
// P1 中断服务子程序
#pragma vector = PORT1_VECTOR
__interrupt void P1_IRQ(void)
{
  P1IFG = 0; // 清除中断标志  
  __low_power_mode_off_on_exit(); // 退出低功耗模式
  P3OUT ^= 0x10;
}
void DelayMs(unsigned int ms)
{
  unsigned char i;
  while(--ms)
  {
    for(i=110;i>0;--i);
  }
}
void main(void)
{
  P1DIR &=0;
  P1DIR |= 0xF0;
  P1OUT|= 0x0F;
  P3DIR |= 0x30;
  P3OUT |= 0xff;
  BoardConfig(0xbF);          
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR &= ~BIT0; // P1.0输入
  P1IE |= BIT0; // P1.0开中断
  P1IES |= BIT0; // P1.0下降沿中断
  _EINT();
  while(1)
  {
    P3OUT &= ~0x20;
    DelayMs(5000);
    _NOP(); // 空语句
    P3OUT |= 0x20;
    __low_power_mode_4(); // 进入LPM0模式,LPM4
    //P3OUT |= 0x20;
    // 当程序执行到上述语句后, 程序会停止到该语句, 并进入低功耗状态
    // 当P1.0出现下降沿的时候, 在P1的中断服务子程序退出低功耗模式
    // 则会再次运行_NOP();语句, 然后在进入底功耗
  }
}
关闭窗口

相关文章