88 lines
2.0 KiB
C
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; //喂看门狗
|
|
|
|
// }
|
|
}
|
|
}
|