|
发表于 2020-9-7 14:55:02
|
显示全部楼层
你好 代码测不出温度
型号:TC040C14W04
使用 源码.rar里面的程序 测出的温度一直是2550,没有变化
- /*****************************************************************************
- 函 数 名 : void Get_Temperature(void)
- 功能描述 : 得到温度值,经过得到AD值计算得到温度值,采用通过10次采样求平均值来计算温度
- 输入参数 : tim: 时间 n:采样次数
- 输出参数 :
- 修改历史 :
- 1.日 期 : 2019年4月2日
- 作 者 : chengjing
- 修改内容 : 创建
- *****************************************************************************/
- void Get_Temperature(u16 tim, u16 n)
- {
- static u16 i = 0, temp_t = 0;
- float temp1 = 0, temp2 = 0;
- if (!timer1msFlag)
- return;
- AD_Count++;
- if (AD_Count > tim)
- {
- Get_ADC_Value();
- i++;
- if (i >= n)
- {
- Get_R_Value(n);
- R1_Temperature = FindTab(TabNTC_10k, TempSize, R1_value);
- R2_Temperature = FindTab(TabNTC_10k, TempSize, R2_value);
- temp1 = (TabNTC_10k[R1_Temperature] - R1_value) * 1.0 /
- (TabNTC_10k[R1_Temperature] - TabNTC_10k[R1_Temperature + 1]);
- temp2 = (TabNTC_10k[R2_Temperature] - R2_value) * 1.0 /
- (TabNTC_10k[R2_Temperature] - TabNTC_10k[R2_Temperature + 1]);
- R1_Temperature = R1_Temperature * 10 + temp1 * 10;
- R2_Temperature = R2_Temperature * 10 + temp2 * 10;
- write_dgus_vp(0x1002, (u8*)&R1_Temperature, 1);
- write_dgus_vp(0x1004, (u8*)&R2_Temperature, 1);
- Temperature_Real = (R1_Temperature * Temp_Coef[0] - R2_Temperature * Temp_Coef[1] + Temp_Coef[2]);
- Temperature_Real = (Temperature_Real / (10 * Temp_Pre)) * 10;
- if (abs(Temperature_Real - Temperatrue_Real_Old) == Temp_Pre)
- {
- temp_t++;
- if (temp_t < 5)
- {
- Temperature_Real = Temperatrue_Real_Old;
- }
- else
- {
- temp_t = 0;
- Temperatrue_Real_Old = Temperature_Real;
- }
- }
- else if (abs(Temperature_Real - Temperatrue_Real_Old) >= Temp_Pre * 2)
- {
- Temperatrue_Real_Old = Temperature_Real;
- temp_t = 0;
- }
- write_dgus_vp(TEMP_CURRENT, (u8*)&Temperature_Real, 1);
- memset(adc_val, 0, sizeof(adc_val));
- i = 0;
- }
- AD_Count = 0;
- }
- }
复制代码
|
|