📄 hs1101.h
字号:
/**
* 文件说明:HS1101处理头文件,将已经获取的频率转成湿度
* 作 者:
* 时 间:2009-05-03
*/
#ifndef _HS1101_H_
#define _HS1101_H_
/*经典湿度与频率的转换表*/
/*注:湿度与频率的关系是近似线性的!!!*/
//unsigned int HStable[11][2]={{0,7351},{10,7224},{20,7100},{30,6976},{40,6853},{50,6728},{60,6600},{70,6468},{80,6330},{90,6186},{100,6033}};
unsigned char gethumidity(unsigned int freq)
{
unsigned int t[11][2]={{0,7351},{10,7224},{20,7100},{30,6976},{40,6853},{50,6728},{60,6600},{70,6468},{80,6330},{90,6186},{100,6033}};
unsigned char i, himi;
float a, b, c, d, f, h;
/*找出频率所在段*/
for (i = 0; i < 11; i++)
{
if (freq > t[i][1])
break;
}
if (i == 0)
return 0;
else if (i > 10)
return 100;
/*频率在(i-1)~i之间,开始计算湿度*/
/*公式: (h_i-1 - h_i)/(f_i-1 -f_i) = (h - h_i)/(f -f_i)
*
* h = h_i + (f -f_i)*(h_i-1 - h_i)/(f_i-1 -f_i)
*/
f = freq;
a = t[i-1][0];
b = t[i-1][1];
c = t[i][0];
d = t[i][1];
h = a + (b - f)*(c- a)/(b - d);
himi = (unsigned char)h;
return h;
}
void himi_to_str(unsigned char * h,unsigned char himi) //湿度数据转换成液晶字符显示
{
h[0] = himi/100+'0'; //百位
himi %= 100;
h[1] = himi/10+'0'; //十位
h[2] = himi%10+'0'; //个位
h[3] = '\0';
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -