ADC10 测量单通道单次模式 -
[导读]
floatad_value;floatvalue;intmain(void){WDTCTL=WDTPW+WDTHOLD;//关看门狗BCSCTL1=CALBC1_1MHz;//设定DCO为1MHZDCOCTL=CALBC1_1MHZ;ADC10CTL1=INCH_10;//选择第10通道,为片内温度传感器ADC10CTL0=REFO
floatad_value;
floatvalue;
intmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关看门狗
BCSCTL1=CALBC1_1MHz;//设定DCO为1MHZ
DCOCTL=CALBC1_1MHZ;
本文引用地址: http://www.21ic.com/app/mcu/201806/761606.htm
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
}
查看评论 回复