⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sub_mc33984.h

📁 客车车身控制模块 分为仪表部分 前控左 前控右 尾控和中控程序模块
💻 H
📖 第 1 页 / 共 2 页
字号:
			}
			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 + -