2023-11-06 08:34:11 +08:00

88 lines
2.0 KiB
C

#define ALLOCATE_EXTERN
#include <Main.h>
uint8_t Channel1_Error_Flag = 0;
uint8_t Channel2_Error_Flag = 0;
void main()
{
Sys.Init();
while (1)
{
UART1.Protocol_Analy(); //协议解析
if (Public.Channel1_StatusFlag == FALSE) //判断通道1是否关闭
{
PWM.PWM1_HeatingSetting(0); //关闭加热通道1
Timer0.Error1_Timer = 0; //硬件错误检测计时清除 开始计时
}
else
{
if ((ADC.Display_Temp1_Value == 0) && (Timer0.Error1_Timer >= 2)) //如果加热打开两秒后 温度还是零 认为温度传感器1故障
{
Channel1_Error_Flag = System_Fault; //通道1温度传感器故障
// PWM.Heating_Flag1 = System_Fault;
}
else if (ADC.Display_Temp1_Value == 500)
{
Channel1_Error_Flag = System_Fault; //通道1温度传感器故障
}
else
{
Channel1_Error_Flag = FALSE;
}
}
if (Public.Channel2_StatusFlag == FALSE) //判断通道2是否关闭
{
PWM.PWM2_HeatingSetting(0); //关闭加热通道2
Timer0.Error2_Timer = 0; //硬件错误检测计时清除 开始计时
}
else
{
if ((Timer0.Error2_Timer >= 2) && (ADC.Display_Temp2_Value == 0)) //如果加热打开两秒后 温度还是零 认为温度传感器2故障
{
Channel2_Error_Flag = System_Fault; //通道2温度传感器故障
// PWM.Heating_Flag2 = System_Fault;
}
else if (ADC.Display_Temp2_Value == 500)
{
Channel2_Error_Flag = System_Fault; //通道2温度传感器故障
}
else
{
Channel2_Error_Flag = FALSE;
}
}
if ((Public.Channel1_StatusFlag == FALSE) && (Public.Channel2_StatusFlag == FALSE)) //判断两个加热是否都关闭
{
FAN_PIN = LOW; //关闭风机
}
else
{
FAN_PIN = HIGH; //打开风机
}
ADC.Get_ADCData(); //读取AD值转化成温度值
if (Timer0.TM1650_Flag == 0)
{
TM1650_Display(&IIC_1, Public.Setting_Temp1, 1); //显示通道1
}
else
{
TM1650_Display(&IIC_1, Public.Setting_Temp2, 2); //显示通道2
}
WDTC |= 0x10; //喂看门狗
// }
}
}