⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hf3223.c

📁 一款电力行业使用的温湿度控制器源代码 湿度传感器采用HF3223 温度采用DS18B20 单片机采用mega8 编程采用winavr2007
💻 C
字号:
#include "inc/config.h"


u16 t0_cnt[10]={ };//测频值
u16 hf3223_f =0;
u16 test_freq=0;

u08 fhz_20ms[100]={};//ARRAY FOR THE temerary buffer for cnter

BOOL f_h_is_read = false;


u08 hf3223_convert(u16 fhz)
{
	u08  RH=100; 
	//fhz = 2*fhz; //采样周期为500ms
	if(fhz > 9595) 			 
	{
		RH=0;
	}
	else if( fhz < 8000)
	{
		RH =100;
	}
	else
	{
		RH	 = ((  9595-fhz)*10/148);
		if(RH>100)RH=100;
	}


	return RH;

}




void hf3223_read(void)
{
	if( f_h_is_read ==true)
	{   	
		 hf3223_f = t0_cnt[0]+t0_cnt[1]+
				   t0_cnt[2]+t0_cnt[3]+
				   t0_cnt[4]+t0_cnt[5]+
				   t0_cnt[6]+t0_cnt[7]+
				   t0_cnt[8]+t0_cnt[9];
		
		if( hf3223_f < 5000 )
		{
		  f_sensor_h = false;
		}
		else
		{
		  f_sensor_h = true ;
		}
		
		Humidity = hf3223_convert( hf3223_f );
	}
	
}



SIGNAL(SIG_OVERFLOW1)
{
	static u08  cnt = 0;
	static u08  bufptr=0;
	u08 i;
	
	TCNT1  =(65536-2150);//2MS 定时

	timer0_stop();
	fhz_20ms[cnt] = TCNT0;
	TCNT0 =0;
	cnt++;
	if( cnt == 50 )
	{
	  f_h_is_read = false;//运算过程中,防止读 

	  bufptr++;
	  if( bufptr==10 ) 
	      bufptr = 0;
		  //使得t0_cnt[0]and t0_cnt[1]
	      //相加得到hf3223的输出频率
	  t0_cnt[bufptr]=0;
	  for( i = 0; i < 50; i++ )
	  {		
		
	   t0_cnt[bufptr] += fhz_20ms[i];	
		  
	  }
		 cnt=0;	
		 
		 f_h_is_read = true;
	}
	     timer0_start();
}










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -