|
#include "msp430G2553.h"
long temp;
long intDegF;
long intDegC;
//***************初始化ADC****/
void ADC10_init(void)
{
ADC10CTL0 &=~ENC; //關(guān)閉轉(zhuǎn)換
ADC10CTL0 =ADC10IE + ADC10ON + REFON + ADC10SHT_3 + REF2_5V;
// ADC10IE 使能ADC轉(zhuǎn)換中斷,即開啟
// ADC10ON 使能ADC轉(zhuǎn)換
// REFON 打開內(nèi)部參考電壓開關(guān)
// DC10SHT_3 時(shí)鐘及64倍頻選擇 0-4倍 1-8倍;2-16倍,3-64被
// SREF_1 參考電壓選擇,選內(nèi)部可用REF2_5V ,內(nèi)部2.5V ;REF1_5V ,內(nèi)部1.5V
ADC10CTL1 =CONSEQ_0 + ADC10SSEL_0 + ADC10DIV_3 + SHS_0 + INCH_10;
// CONSEQ_0 ===0單通道轉(zhuǎn)換;1多通道倫流 2復(fù)合
// ADC10SSEL_1 時(shí)鐘選擇 0-ADC10OSC;1-ACLK;2-MCLK;3-SMCLK
// ADC10DIV_3 ADC時(shí)鐘
// SHS_0 ADC控制選擇
//INCH_10 模擬信號(hào)輸入通道選擇
__delay_cycles(30000);
ADC10CTL0 |= ENC; //開啟轉(zhuǎn)換
}
//************主函數(shù)***************************
void main()
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ADC10_init();
while(1)
{
ADC10CTL0 |=ENC +ADC10SC;
LPM0; //__bis_SR_register(CPUOFF + GIE);
temp =ADC10MEM; //Read Data
intDegC =((temp-673)*423)/1024;
__no_operation();
}
}
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_A(void)
{
__bic_SR_register_on_exit(LPM4_bits);
}
|
|