📄 relay.c
字号:
#include"inc/config.h"
u08 CompareTem( int16 tem , u08 statenow )
{
if( statenow == NO_ALARM)/////////////////当前状态为非报警状态
{
if (tem <= TL ) //低温报警
{
statenow= TL_ALARM;
}
else if (tem >= TH ) //高温报警
{
statenow= TH_ALARM;
}
}
else if( statenow ==TL_ALARM ) //已经低温报警,看是否停止
{
if (tem >= TH)
{
statenow= TH_ALARM;
}
else
if (tem >= (TL+100) )
{
statenow= NO_ALARM;
}
}
else if( statenow ==TH_ALARM ) //已经高温报警,看是否停止
{
if( tem <=TL)
{
statenow= TL_ALARM;
}
else if (tem <= (TH-100) )
{
statenow= NO_ALARM;
}
}
return statenow; //返回判断结果
}
/************************************************************************************
** 函数功能: 湿度比较函数
** 传入参数: 最新湿度,通道号,当前状态
** 输出: 重新判断后的报警状态
************************************************************************************/
u08 CompareHum( u08 Hum , u08 statenow )
{
if( statenow == NO_ALARM) //没有报警
{
if (Hum >= HH ) //高湿报警
{
statenow = HH_ALARM;
}
}
else //已经高湿
{
if (Hum <= (HH-10 )) //复位报警 ,否则保持原状态
{
statenow = NO_ALARM;
}
}
return statenow;
}
/**------------------------------------------------------------------**/
void RelayJudge( u08 Tstate ,u08 Hstate)
{
//湿度继电1器判断
if( Hstate==HH_ALARM && Tstate!=TH_ALARM)
{
heat ( ON );
fan ( OFF ); //除湿时保证风扇不动作
}
//温度继电器判断
if (Tstate==TH_ALARM ) //温湿度交错控制,湿度优先
{
fan ( ON ); //风扇降温时,保证加热升温关闭
heat ( OFF );
}
else if (Tstate==TL_ALARM)
{
heat ( ON );
fan ( OFF );
}
else
{
fan ( OFF );
if( Hstate==NO_ALARM )
{
heat ( OFF ); //如果不在除湿,则关闭加热,
}
}
}
void RelayRst(void) //用于上电或者修改参数后推出时
{
AlrmStatusH = NO_ALARM;
AlrmStatusT = NO_ALARM;
}
/*继电器操作函数*/
void dehum( BOOL On_Off)//除湿
{
CH1_DEHUM = On_Off;
}
void heat( BOOL On_Off)//加热
{
CH1_HEAT = On_Off;
}
void fan( BOOL On_Off)//风扇
{
CH1_FAN = On_Off;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -