您现在的位置: 主页 > MCU > 单片机技术应用 > msp430温度测量(已调试OK) -
本文所属标签:
为本文创立个标签吧:

msp430温度测量(已调试OK) -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]
#include#defineTEM_ADC_CHL0x0avoidInitSys(void);voidRead_ADC(unsignedintINCH_channel);voidADC_TO_TEM(void);unsignedintADC_sample_val;unsignedintlongtemp1,temp2;unsignedintlongIntDegC;unsi

#include
#defineTEM_ADC_CHL0x0a
voidInitSys(void);
voidRead_ADC(unsignedintINCH_channel);
voidADC_TO_TEM(void);

本文引用地址: http://www.21ic.com/app/mcu/201806/761582.htm

unsignedintADC_sample_val;
unsignedintlongtemp1,temp2;
unsignedintlongIntDegC;
unsignedintlongIntDegF;
voidmain(void)
{
InitSys();
while(1)
{
Read_ADC(TEM_ADC_CHL);
ADC_TO_TEM();
}
}
voidInitSys(void)
{
//INITSYSTEMCLKS(ACLKANDDCO/MCLK)
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗

BCSCTL1=0x87;//ACLK分频系数是1,内部电阻选7
DCOCTL=0xe0;//设置DCO输出时钟频率5MHz
BCSCTL2=SELM_0;//选择MCLK为DCOCLK,内部电阻
ADC10CTL1|=0x08;//转换时钟为ACLK
ADC10CTL0=SREF_1+ADC10SHT_0+REFOUT+REFON+ADC10ON;
//选择内部电压1.5V,采样时间4XADC10CLKS
}
voidRead_ADC(unsignedintINCH_channel)
{
unsignedinttmp;
ADC10CTL0&=~ENC;
tmp=ADC10CTL1;
tmp&=0x0fff;
tmp|=(INCH_channel<<12);
ADC10CTL1=tmp;
ADC10CTL0|=ENC+ADC10SC;

while(ADC10CTL1&ADC10BUSY)
{}
ADC_sample_val=ADC10MEM;
ADC10CTL0&=~ENC;
}
voidADC_TO_TEM(void)
{

//oC=((A10/1024)*1500mV)-986mV)*1/3.55mV=A10*423/1024-278
temp1=ADC10MEM;
IntDegC=((temp1-673)*423)/1024;

//oF=((A10/1024)*1500mV)-923mV)*1/1.97mV=x*761/1024-468
temp2=ADC10MEM;
IntDegF=((temp2-630)*761)/1024;
}




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > msp430温度测量(已调试OK) -
 

"msp430温度测量(已调试OK) -"的相关文章

网站地图

围观()