|
- #include "msp430f149.h"
/* 这个程序改编自学习机的光电对管程序,用到了低功耗模式0 (CPUOFF+MCLKOFF+SMCLK ON+ALCK ON) */ void main() { WDTCTL =WDT_MDLY_0_064; //让看门狗进入定时器模式,中断时间0.064ms (assumed SMCLK 1MHz) IE1=WDTIE;// 开启看门狗定时器中断 P3DIR|=(BIT2); _BIS_SR(LPM0_bits+GIE);//进入低功耗模式0,并开启全局中断(这个必须要开) } #pragma vector=WDT_VECTOR//看门狗中断程序入口向量 __interrupt void haha() { // LPM0_EXIT;//退出低功耗式0,其实是自动唤醒,没必要加上这句! if(P3IN&BIT0)//根据光电对管是否被遮控制LED { P3OUT|=BIT2; } else{ P3OUT&=~BIT2; } //_BIS_SR(LPM0_bits+GIE); //_EINT();//用这个和下面用GIE是一样的效果,但可能引起中断嵌套,实验过了,程序飞了! _BIS_SR(LPM0_bits+GIE);//再次进入低功耗模式0,并开启全局中断,以便下一次响应WDT Interrupt /*_EINT(); _BIS_SR(LPM0_bits);*///使用这段代码可能造成中断嵌套,慎重! }
复制代码
|
|