- /************************************************************
- * 函数名 : 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
- };
复制代码
|