ADC10 测量单通道单次模式
扫描二维码
随时随地手机看文章
floatad_value;
floatvalue;
intmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关看门狗
BCSCTL1=CALBC1_1MHz;//设定DCO为1MHZ
DCOCTL=CALBC1_1MHZ;
ADC10CTL1=INCH_10;//选择第10通道,为片内温度传感器
ADC10CTL0=REFON+SREF_1;//打开1.5V正参考,地为负参考
ADC10CTL0|=ADC10ON+ADC10SHT_3+ADC10IE;//打开ADC10内核,设定采样保持时间为64
个ADC10CLK,使能ADC10中断
ADC10CTL0|=ENC+ADC10SC;//启动AD转换
_BIS_SR(GIE+CPUOFF);//开总中断并进入低功耗
value=((ad_value*1.5/1023)-0.986)/0.0035;//计算温度
return0;
}
#pragmavector=ADC10_VECTOR//ADC10中断服务
__interruptvoidadc_isr(void)
{
ad_value=ADC10MEM;//将AD采样值存入ad_value
_BIC_SR_IRQ(CPUOFF);//退出低功耗0
}