ADC12CTL0|=ADC12SC;
result=ADC10MEM0;
LPM4;
上面这三句,第一句说的是开启ADC转换,也就是这个时候开始让ADC模块开始采样。
第二句,直接读取,由于ADC采样是需要时间的,所以你这个时候读出来的数据是不可靠的。
第三句,进入低功耗模式,这个时候数据已经读出来了,再进低功耗模式已经没用了。
下面这个链接是我之前写的ADC读取语句,你可以参考一下(读Vcc电压):
https://bbs.eeworld.com.cn/forum. ... 6450&fromuid=354619
补充一下宏定义和中断服务。
其中flag是全局变量,作用是将其的8个bit分别作为8个标志位使用。
在这里可以不使用这个标志位。
我这么写的原因是我的程序架构比较混乱,唤醒MCU的中断源可能有好几个,不加的话在执行过程中容易出错。
#define ADC_Interrupt flag&0x04
#define Set_ADC_Interrupt flag|=0x04
#define Reset_ADC_Interrupt flag&=0xFB
__interrupt void ADC10_ISR (void)
{
Set_ADC_Interrupt;
LPM3_EXIT; // Clear LPM3 bits from 0(SR)
}
|