?? relay.c
字號:
#include"inc/config.h"
u08 CompareTem( int16 tem , u08 statenow )
{
if( statenow == NO_ALARM)/////////////////當前狀態(tài)為非報警狀態(tài)
{
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; //返回判斷結果
}
/************************************************************************************
** 函數功能: 濕度比較函數
** 傳入參數: 最新濕度,通道號,當前狀態(tài)
** 輸出: 重新判斷后的報警狀態(tài)
************************************************************************************/
u08 CompareHum( u08 Hum , u08 statenow )
{
if( statenow == NO_ALARM) //沒有報警
{
if (Hum >= HH ) //高濕報警
{
statenow = HH_ALARM;
}
}
else //已經高濕
{
if (Hum <= (HH-10 )) //復位報警 ,否則保持原狀態(tài)
{
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 ) //溫濕度交錯控制,濕度優(yōu)先
{
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 + -