floatad_value;
floatvalue;
intmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//關(guān)看門狗
BCSCTL1=CALBC1_1MHz;//設(shè)定DCO為1MHZ
DCOCTL=CALBC1_1MHZ;
ADC10CTL1=INCH_10;//選擇第10通道,為片內(nèi)溫度傳感器
ADC10CTL0=REFON+SREF_1;//打開1.5V正參考,地為負參考
ADC10CTL0|=ADC10ON+ADC10SHT_3+ADC10IE;//打開ADC10內(nèi)核,設(shè)定采樣保持時間為64
個ADC10CLK,使能ADC10中斷
ADC10CTL0|=ENC+ADC10SC;//啟動AD轉(zhuǎn)換
_BIS_SR(GIE+CPUOFF);//開總中斷并進入低功耗
value=((ad_value*1.5/1023)-0.986)/0.0035;//計算溫度
return0;
}
#pragmavector=ADC10_VECTOR//ADC10中斷服務(wù)
__interruptvoidadc_isr(void)
{
ad_value=ADC10MEM;//將AD采樣值存入ad_value
_BIC_SR_IRQ(CPUOFF);//退出低功耗0
}