|
发表于 2022-4-20 10:41:13
|
显示全部楼层
/************************************************************
* 函数名 : Get_Temp()
* 功能说明 : 获取NTC温度值
*
* 输入参数 : 无
* 输出参数 : uint16 温度值*100,单位摄氏度
************************************
* 修改记录 :
* 历次作者 :
* 日期 :
************************************
* 修改记录 : 新增函数,第一次编辑
* 历次作者 : Huo_xp
* 日期 : 2019/08/12
*************************************************************/
uint16 Get_Temp(void)
{
uint8 count = 0;
static uint8 adccount;
static uint8 Temp_Buf[AVE_N+1];
uint16 temp = 0;
uint16 sum = 0;
temp=(uint16)ADC_SAR_SEQ_GetResult16(HEAT_TEMP)*2; //Psoc ADC实际只有11Bit,所以*2,方便查表计算温度
// Temp_Buf[AVE_N]=temp;//ADC_SAR_SEQ_GetResult16(HEAT_TEMP)*2; //将ADC转换结果放数组最高位
// if( ++adccount < 8) //采样初期不使用递推滤波算法
// {
// for(count=0;count<8;count++) //准备递推滤波算法的数据
// {
// Temp_Buf[count]=Temp_Buf[count+1];//所有数据循环左移
// }
// temp=Temp_Buf[8];//采样初期使用当前采样值
// }
// else //只有采样次数大于8次以后才使用递推滤波算法
// {
// adccount=8; //采样次数超过8次后,固定设置为8
// for(count=0;count<8;count++) //递推滤波算法
// {
// Temp_Buf[count]=Temp_Buf[count+1];//所有数据循环左移
// sum += Temp_Buf[count]; //求和
// }
// temp=sum/8; //求平均值
// }
// count=0;
while( temp < NTC_Table[count] ) //将当前温度值与温度表对比,得到所在位置
{ count++; }
NTC_Temp = count*100 +(1-((temp - NTC_Table[count+1])*100 )/( NTC_Table[count] - NTC_Table[count+1]));
// 插值法计算温度,将数据全部扩大100倍,使小数变为整数,
// if(count >=39) //温度高于0度
// {
// temp=NTC_Temp-3900;//修正温度,0~120
// sprintf(
// uartLine, "Heat temp is: %dC %d %d %d",
// (uint16) temp,ADC_SAR_SEQ_GetResult16(HEAT_TEMP),count,TIMER.mSec //ADCcount//
// );
//
// UART_PutString(uartLine);
// UART_PutCRLF();
// }
// else
// {
// temp=4000-NTC_Temp;//修正温度,-40~0
// sprintf(
// uartLine, "Heat temp is: -%dC %d %d ",
// (uint16) temp,ADC_SAR_SEQ_GetResult16(HEAT_TEMP),count //ADCcount//
// );
//
// UART_PutString(uartLine);
// UART_PutCRLF();
// }
return NTC_Temp;
}
/************************************************************
* 函数名 : NTC_Table[]
* 功能说明 : NTC温度阻止表,不同的NTC需按照规格书重新计算
*
* 输入参数 : 无
* 输出参数 : 无
************************************
* 修改记录 :
* 历次作者 :
* 日期 :
************************************
* 修改记录 : 新增函数,第一次编辑
* 历次作者 : Huo_xp
* 日期 : 2019/08/12
*************************************************************/
const uint16 NTC_Table[] = { //NTC温度转换12 Bit ADC 各温度对应的值
//hex temp C
0xF8B, //-40
0xF85, //-39
0xF7F, //-38
0xF78, //-37
0xF70, //-36
0xF69, //-35
0xF61, //-34
0xF59, //-33
0xF50, //-32
0xF48, //-31
0xF3E, //-30
0xF35, //-29
0xF2B, //-28
0xF20, //-27
0xF15, //-26
0xF0A, //-25
0xEFE, //-24
0xEF2, //-23
0xEE5, //-22
0xED8, //-21
0xECA, //-20
0xEBC, //-19
0xEAE, //-18
0xE9E, //-17
0xE8F, //-16
0xE7E, //-15
0xE6E, //-14
0xE5C, //-13
0xE4A, //-12
0xE38, //-11
0xE25, //-10
0xE11, //-9
0xDFD, //-8
0xDE9, //-7
0xDD3, //-6
0xDBD, //-5
0xDA7, //-4
0xD90, //-3
0xD78, //-2
0xD60, //-1
0xD47, //0
0xD2E, //1
0xD14, //2
0xCFA, //3
0xCDF, //4
0xCC3, //5
0xCA7, //6
0xC8B, //7
0xC6E, //8
0xC50, //9
0xC32, //10
0xC14, //11
0xBF5, //12
0xBD6, //13
0xBB5, //14
0xB96, //15
0xB75, //16
0xB54, //17
0xB32, //18
0xB11, //19
0xAEF, //20
0xACC, //21
0xAAA, //22
0xA87, //23
0xA64, //24
0xA41, //25
0xA1E, //26
0x9FA, //27
0x9D7, //28
0x9B3, //29
0x98F, //30
0x96C, //31
0x948, //32
0x924, //33
0x900, //34
0x8DC, //35
0x8B8, //36
0x895, //37
0x871, //38
0x84D, //39
0x82A, //40
0x807, //41
0x7E4, //42
0x7C1, //43
0x79E, //44
0x77C, //45
0x75A, //46
0x738, //47
0x717, //48
0x6F5, //49
0x6D4, //50
0x6B3, //51
0x693, //52
0x673, //53
0x653, //54
0x634, //55
0x615, //56
0x5F6, //57
0x5D8, //58
0x5BA, //59
0x59D, //60
0x580, //61
0x563, //62
0x547, //63
0x52B, //64
0x510, //65
0x4F5, //66
0x4DB, //67
0x4C1, //68
0x4A8, //69
0x48E, //70
0x476, //71
0x45E, //72
0x446, //73
0x42F, //74
0x418, //75
0x401, //76
0x3EB, //77
0x3D6, //78
0x3C1, //79
0x3AC, //80
0x397, //81
0x384, //82
0x370, //83
0x35D, //84
0x34A, //85
0x338, //86
0x326, //87
0x315, //88
0x304, //89
0x2F3, //90
0x2E3, //91
0x2D2, //92
0x2C3, //93
0x2B3, //94
0x2A5, //95
0x296, //96
0x287, //97
0x279, //98
0x26C, //99
0x25E, //100
0x251, //101
0x244, //102
0x238, //103
0x22C, //104
0x220, //105
0x214, //106
0x209, //107
0x1FE, //108
0x1F3, //109
0x1E8, //110
0x1DE, //111
0x1D4, //112
0x1CA, //113
0x1C0, //114
0x1B6, //115
0x1AD, //116
0x1A4, //117
0x19B, //118
0x193, //119
0x18A, //120
}; |
打赏
-
查看全部打赏
|