#define _ADC_C
#include "Incfile.h"
/***********************************************************************************
函数名称: u16 GetIVRefCode(void)
功能描述:获取IVREF的精确电压值
输入参数:
返回参数:
*************************************************************************************/
void GetIVRefCode(void)
{
DWordTypeDef dwTemp;
WordTypeDef wIVRAdjAdc;
wIVRAdjAdc.W=GetIVRef();
// 检测IVRef校准值是否在范围内(1.3~1.5)
if((wIVRAdjAdc.W <1614)||(wIVRAdjAdc.W>=1862))
{ // 存储的IVRef值右问题,设为默认值 1.4V@3.3V
wIVRAdjAdc.W=1738L;
}
else
{
}
// 计算IVR的电压值
dwTemp.DW=wIVRAdjAdc.W;
wIVRefValue.W=dwTemp.DW*3300L/4096L;
}
/***********************************************************************************
函数名称: u16 GetNtcAvgCode(void)
功能描述:环境温度采样值获取(采样16次取平均)
输入参数:
返回参数:0:Error
*************************************************************************************/
u32 GetNtcAvgCode(void)
{
u8 i;
DWordTypeDef dwTemp0,dwTemp1;
dwTemp0.DW=0;
dwTemp1.DW=0;
for(i=0;i<16;i++)
{
ADC_SetChannel_AIN6(); // 设置ADC通道为AIN6 T0
DelayXus(100);
dwTemp0.DW=dwTemp0.DW+GetAdcValue();
ADC_SetChannel_AIN7(); // 设置ADC通道为AIN7 T1
DelayXus(100);
dwTemp1.DW=dwTemp1.DW+GetAdcValue();
}
dwTemp0.DW=dwTemp0.DW>>4;
dwTemp1.DW=dwTemp1.DW>>4;
if(dwTemp1.DW<dwTemp0.DW) return 0;
dwTemp1.DW=(dwTemp1.DW-dwTemp0.DW)*NTC_REF_VALUE;
dwTemp1.DW=dwTemp1.DW/dwTemp0.DW;
return dwTemp1.DW;
}
/***********************************************************************************
函数名称: u16 GetVirAvgCode(void)
功能描述:红外温度采样值获取(采样16次取平均)
输入参数:
返回参数:
*************************************************************************************/
u32 GetVirAvgCode(void)
{
u8 i;
DWordTypeDef dwTemp;
DWordTypeDef dwVinAdc,dwIVRAdc;
dwVinAdc.DW=0;
dwIVRAdc.DW=0;
for(i=0;i<16;i++)
{
ADC_SetChannel_AIN5(); // 设置ADC通道为AIN5 Vir
DelayXus(100);
dwVinAdc.DW=dwVinAdc.DW+GetAdcValue();
ADC_SetChannel_IVR14(); // 设置ADC通道为IVR14
DelayXus(100);
dwIVRAdc.DW=dwIVRAdc.DW+GetAdcValue();
}
dwVinAdc.DW=dwVinAdc.DW>>4;
dwIVRAdc.DW=dwIVRAdc.DW>>4;
// 计算Vir的输入电压值
dwTemp.DW=wIVRefValue.W;
dwTemp.DW=dwTemp.DW*dwVinAdc.DW*1000L/dwIVRAdc.DW;
return dwTemp.DW;
}
|