📄 sub_mc33984.h
字号:
}
else if(xidi_rain==10) //0.5s后检测第二次雨刮到位信号
{
if(SGH_status.Bit.BIT4) xidi_flag=0; //停止雨刮
}
else xidi_rain++;
}
}
//点火锁ON档
if(CAN_YB0.Bit.BIT0==1&&CAN_YB0.Bit.BIT1==0)
{
if(MC33984_fault2.Bit.BIT0) MC33984_OUT[4].Bit.BIT0=0; //无故障开 监视器电源
else MC33984_OUT[4].Bit.BIT0=1;
if(MC33984_fault2.Bit.BIT1) MC33984_OUT[4].Bit.BIT2=0; //无故障开 ABS ON档电源
else MC33984_OUT[4].Bit.BIT2=1;
}
else MC33984_OUT[4].Byte=0x1a;
}
/////////////////////////////////////////////////////////////
//定义: void CAN_QKZC(void)
//描述: 接收前控左CAN命令,执行操作
/////////////////////////////////////////////////////////////
void CAN_QKZC(void)
{
//电源开关
if(CAN_QKZC0.Bit.BIT0==1&&CAN_QKZC0.Bit.BIT1==0)
{
if(MC33984_fault3.Bit.BIT0) MC33984_OUT[8].Bit.BIT0=0; //无故障开 音响电源
else MC33984_OUT[8].Bit.BIT0=1;
if(MC33984_fault3.Bit.BIT1) MC33984_OUT[8].Bit.BIT2=0; //无故障开 行驶记录仪电源
else MC33984_OUT[8].Bit.BIT2=1;
if(MC33984_fault3.Bit.BIT2) MC33984_OUT[9].Bit.BIT0=0; //无故障开 开关有效电源
else MC33984_OUT[9].Bit.BIT0=1;
//ABS工作(状态)指示无效
if(SGH_status.Bit.BIT2||MC33984_fault3.Bit.BIT3) MC33984_OUT[9].Bit.BIT2=0; //无故障开 缓速器控制电源输出
else MC33984_OUT[9].Bit.BIT2=1;
}
else
{
MC33984_OUT[8].Byte=0x1a;
MC33984_OUT[9].Byte=0x1a;
}
//除霜开关低速
if(CAN_QKZC2.Bit.BIT2==1&&CAN_QKZC2.Bit.BIT3==0)
{
if(MC33984_fault2.Bit.BIT7) MC33984_OUT[7].Byte=0x1a;
else MC33984_OUT[7].Byte=0x1e;
}
//除霜开关高速
else if(CAN_QKZC2.Bit.BIT4==1&&CAN_QKZC2.Bit.BIT5==0)
{
if(MC33984_fault2.Bit.BIT6) MC33984_OUT[7].Byte=0x1a;
else MC33984_OUT[7].Byte=0x1b;
}
else MC33984_OUT[7].Byte=0x1a;
}
/////////////////////////////////////////////////////////////
//定义: void CAN_WKC(void)
//描述: 接收尾控CAN命令,执行操作
/////////////////////////////////////////////////////////////
void CAN_WKC(void)
{
//倒车开关
if(CAN_WKC2.Bit.BIT4==1&&CAN_WKC2.Bit.BIT5==0&&MC33984_fault3.Bit.BIT6==0) MC33984_OUT[11].Bit.BIT0=1; //无故障开 倒档信号
else MC33984_OUT[11].Bit.BIT0=0;
}
//////////////////////////////////////////////////////////////
//定义: void FAULT_OFF(void) //
//描述: 五秒后自动清除MC33984故障 //
//////////////////////////////////////////////////////////////
void FAULT_OFF(void)
{
if(MC33984_fault1.Bit.BIT0) MC33984_OUT[0].Bit.BIT0=0;
if(MC33984_fault1.Bit.BIT1) MC33984_OUT[0].Bit.BIT2=0;
if(MC33984_fault1.Bit.BIT2) MC33984_OUT[1].Bit.BIT0=0;
if(MC33984_fault1.Bit.BIT3) MC33984_OUT[1].Bit.BIT2=0;
if(MC33984_fault1.Bit.BIT4) MC33984_OUT[2].Bit.BIT0=0;
if(MC33984_fault1.Bit.BIT5) MC33984_OUT[2].Bit.BIT2=0;
if(MC33984_fault1.Bit.BIT6) MC33984_OUT[3].Bit.BIT0=0;
if(MC33984_fault1.Bit.BIT7) MC33984_OUT[3].Bit.BIT2=0;
if(MC33984_fault2.Bit.BIT0) MC33984_OUT[4].Bit.BIT0=0;
if(MC33984_fault2.Bit.BIT1) MC33984_OUT[4].Bit.BIT2=0;
if(MC33984_fault2.Bit.BIT2) MC33984_OUT[5].Bit.BIT0=0;
if(MC33984_fault2.Bit.BIT3) MC33984_OUT[5].Bit.BIT2=0;
if(MC33984_fault2.Bit.BIT4) MC33984_OUT[6].Bit.BIT0=0;
if(MC33984_fault2.Bit.BIT5) MC33984_OUT[6].Bit.BIT2=0;
if(MC33984_fault2.Bit.BIT6) MC33984_OUT[7].Bit.BIT0=0;
if(MC33984_fault2.Bit.BIT7) MC33984_OUT[7].Bit.BIT2=0;
if(MC33984_fault3.Bit.BIT0) MC33984_OUT[8].Bit.BIT0=0;
if(MC33984_fault3.Bit.BIT1) MC33984_OUT[8].Bit.BIT2=0;
if(MC33984_fault3.Bit.BIT2) MC33984_OUT[9].Bit.BIT0=0;
if(MC33984_fault3.Bit.BIT3) MC33984_OUT[9].Bit.BIT2=0;
if(MC33984_fault3.Bit.BIT6) MC33984_OUT[11].Bit.BIT0=0;
}
//////////////////////////////////////////////////////////////
//定义: voidFAULT_CLR(void) //
//描述: 五秒后自动清除MC33984故障 //
//////////////////////////////////////////////////////////////
void FAULT_CLR(void)
{
if(fault_clk)
{
fault_clk=0;
//MC33984_fault1
if(MC33984_fault1.Byte!=0x00)
{
if(MC33984_fault1.Bit.BIT0) //右前小灯
{
fault1_count[0]++;
if(fault1_count[0]==10)
{
fault1_count[0]=0;
CAN_STR0.Bit.BIT0=0;
CAN_STR0.Bit.BIT1=0;
MC33984_fault1.Bit.BIT0=0;
}
}
if(MC33984_fault1.Bit.BIT1) //开关背光电源
{
fault1_count[1]++;
if(fault1_count[1]==10)
{
fault1_count[1]=0;
CAN_STR0.Bit.BIT2=0;
CAN_STR0.Bit.BIT3=0;
MC33984_fault1.Bit.BIT1=0;
}
}
if(MC33984_fault1.Bit.BIT2) //右近光灯
{
fault1_count[2]++;
if(fault1_count[2]==10)
{
fault1_count[2]=0;
CAN_STR0.Bit.BIT4=0;
CAN_STR0.Bit.BIT5=0;
MC33984_fault1.Bit.BIT2=0;
}
}
if(MC33984_fault1.Bit.BIT3) //前右转向灯
{
fault1_count[3]++;
if(fault1_count[3]==10)
{
fault1_count[3]=0;
CAN_STR0.Bit.BIT6=0;
CAN_STR0.Bit.BIT7=0;
MC33984_fault1.Bit.BIT3=0;
}
}
if(MC33984_fault1.Bit.BIT4) //右远光灯
{
fault1_count[4]++;
if(fault1_count[4]==10)
{
fault1_count[4]=0;
CAN_STR1.Bit.BIT0=0;
CAN_STR1.Bit.BIT1=0;
MC33984_fault1.Bit.BIT4=0;
}
}
if(MC33984_fault1.Bit.BIT5) //洗涤电机
{
fault1_count[5]++;
if(fault1_count[5]==10)
{
fault1_count[5]=0;
CAN_STR1.Bit.BIT2=0;
CAN_STR1.Bit.BIT3=0;
MC33984_fault1.Bit.BIT5=0;
}
}
if(MC33984_fault1.Bit.BIT6) //右前雾灯
{
fault1_count[6]++;
if(fault1_count[6]==10)
{
fault1_count[6]=0;
CAN_STR1.Bit.BIT4=0;
CAN_STR1.Bit.BIT5=0;
MC33984_fault1.Bit.BIT6=0;
}
}
if(MC33984_fault1.Bit.BIT7) //右镜加热器
{
fault1_count[7]++;
if(fault1_count[7]==10)
{
fault1_count[7]=0;
CAN_STR1.Bit.BIT6=0;
CAN_STR1.Bit.BIT7=0;
MC33984_fault1.Bit.BIT7=0;
}
}
}
//MC33984_fault2
if(MC33984_fault2.Byte!=0x00) //监视器电源
{
if(MC33984_fault2.Bit.BIT0)
{
fault2_count[0]++;
if(fault2_count[0]==10)
{
fault2_count[0]=0;
CAN_STR2.Bit.BIT0=0;
CAN_STR2.Bit.BIT1=0;
MC33984_fault2.Bit.BIT0=0;
}
}
if(MC33984_fault2.Bit.BIT1) //ABS ON档电源
{
fault2_count[1]++;
if(fault2_count[1]==10)
{
fault2_count[1]=0;
CAN_STR2.Bit.BIT2=0;
CAN_STR2.Bit.BIT3=0;
MC33984_fault2.Bit.BIT1=0;
}
}
if(MC33984_fault2.Bit.BIT2) //雨刮高速
{
fault2_count[2]++;
if(fault2_count[2]==10)
{
fault2_count[2]=0;
CAN_STR2.Bit.BIT4=0;
CAN_STR2.Bit.BIT5=0;
MC33984_fault2.Bit.BIT2=0;
}
}
if(MC33984_fault2.Bit.BIT3) //雨刮低速
{
fault2_count[3]++;
if(fault2_count[3]==10)
{
fault2_count[3]=0;
CAN_STR2.Bit.BIT6=0;
CAN_STR2.Bit.BIT7=0;
MC33984_fault2.Bit.BIT3=0;
}
}
if(MC33984_fault2.Bit.BIT4) //前门电磁阀开
{
fault2_count[4]++;
if(fault2_count[4]==10)
{
fault2_count[4]=0;
CAN_STR3.Bit.BIT0=0;
CAN_STR3.Bit.BIT1=0;
MC33984_fault2.Bit.BIT4=0;
}
}
if(MC33984_fault2.Bit.BIT5) //前门电磁阀关
{
fault2_count[5]++;
if(fault2_count[5]==10)
{
fault2_count[5]=0;
CAN_STR3.Bit.BIT2=0;
CAN_STR3.Bit.BIT3=0;
MC33984_fault2.Bit.BIT5=0;
}
}
if(MC33984_fault2.Bit.BIT6) //除霜电机高速
{
fault2_count[6]++;
if(fault2_count[6]==10)
{
fault2_count[6]=0;
CAN_STR3.Bit.BIT4=0;
CAN_STR3.Bit.BIT5=0;
MC33984_fault2.Bit.BIT6=0;
}
}
if(MC33984_fault2.Bit.BIT7) //除霜电机低速
{
fault2_count[7]++;
if(fault2_count[7]==10)
{
fault2_count[7]=0;
CAN_STR3.Bit.BIT6=0;
CAN_STR3.Bit.BIT7=0;
MC33984_fault2.Bit.BIT7=0;
}
}
}
//MC33984_fault3
if(MC33984_fault3.Byte!=0x00) //音响电源
{
if(MC33984_fault3.Bit.BIT0)
{
fault3_count[0]++;
if(fault3_count[0]==10)
{
fault3_count[1]=0;
CAN_STR4.Bit.BIT0=0;
CAN_STR4.Bit.BIT1=0;
MC33984_fault3.Bit.BIT0=0;
}
}
if(MC33984_fault3.Bit.BIT1) //行驶记录仪电源
{
fault3_count[1]++;
if(fault3_count[1]==10)
{
fault3_count[1]=0;
CAN_STR4.Bit.BIT2=0;
CAN_STR4.Bit.BIT3=0;
MC33984_fault3.Bit.BIT1=0;
}
}
if(MC33984_fault3.Bit.BIT2) //开关有效电源
{
fault3_count[2]++;
if(fault3_count[2]==10)
{
fault3_count[2]=0;
CAN_STR4.Bit.BIT4=0;
CAN_STR4.Bit.BIT5=0;
MC33984_fault3.Bit.BIT2=0;
}
}
if(MC33984_fault3.Bit.BIT3) //缓速器控制电源输出
{
fault3_count[3]++;
if(fault3_count[3]==10)
{
fault3_count[3]=0;
CAN_STR4.Bit.BIT6=0;
CAN_STR4.Bit.BIT7=0;
MC33984_fault3.Bit.BIT3=0;
}
}
MC33984_fault3.Bit.BIT4=0; //NC
MC33984_fault3.Bit.BIT5=0; //NC
if(MC33984_fault3.Bit.BIT6) //倒档信号
{
fault3_count[4]++;
if(fault3_count[4]==10)
{
fault3_count[4]=0;
CAN_STR5.Bit.BIT2=0;
CAN_STR5.Bit.BIT3=0;
MC33984_fault3.Bit.BIT6=0;
}
}
MC33984_fault3.Bit.BIT7=0; //NC
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -