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

📄 sub_mc33984.h

📁 客车车身控制模块 分为仪表部分 前控左 前控右 尾控和中控程序模块
💻 H
📖 第 1 页 / 共 2 页
字号:
sys_data_type	MC33984_fault1,MC33984_fault2,MC33984_fault3,MC33984_fault4;

unsigned char	fault1_count[8],fault2_count[8],fault3_count[8],fault4_count[5];	//故障清除计数器

sys_data_type	_SUB_FLAGS1;

#define		DOOR_WAKE		_SUB_FLAGS1.Bit.BIT0
#define		door_flag		_SUB_FLAGS1.Bit.BIT1
#define		door_close	_SUB_FLAGS1.Bit.BIT2
#define		door_open		_SUB_FLAGS1.Bit.BIT3

unsigned char	door_count=0;
//////////////////////////////////////////////////////////////
//定义:	 void FAULT_STA(void)								//
//描述:	  判断故障,根据故障组织报文						//
//////////////////////////////////////////////////////////////
void FAULT_STA(void)
{
	if(fault_ok)														//已检测
	{
	
		if(MC33984_STATUS0.Bit.BIT0==0||MC33984_STATUS0.Bit.BIT7==1||MC33984_STATUS0.Byte==0x01||(MC33984_STATUS0.Bit.BIT4&&MC33984_STATUS0.Bit.BIT5)||((MC33984_STATUS0.Bit.BIT4||MC33984_STATUS0.Bit.BIT5)&&MC33984_STATUS0.Bit.BIT3))	MC33984_STATUS0.Byte=0x00;
		//故障位为0(无故障)、通道位为1(通道错误)、故障码为0x01(无故障现象)、高过流与低过流并存、短路与开路并存,通道0检测无效
		if(MC33984_STATUS1.Bit.BIT0==0||MC33984_STATUS1.Bit.BIT7==0||MC33984_STATUS1.Byte==0x81||(MC33984_STATUS1.Bit.BIT4&&MC33984_STATUS1.Bit.BIT5)||((MC33984_STATUS1.Bit.BIT4||MC33984_STATUS1.Bit.BIT5)&&MC33984_STATUS1.Bit.BIT3))	MC33984_STATUS1.Byte=0x80;
		//故障位为0(无故障)、通道位为0(通道错误)、故障码为0x81(无故障现象)、高过流与低过流并存、短路与开路并存,通道1检测无效
		if(MC33984_STATUS0.Bit.BIT0)										//HS0有故障?
		{
			if(MC33984_STATUS0.Bit.BIT3)									//开路
			{
				switch(fault_count)
				{
					case 0:		{CAN_STR0.Bit.BIT0=1;CAN_STR0.Bit.BIT1=0;MC33984_fault1.Bit.BIT0=1;break;}	//侧左转向灯1
					case 1:		{CAN_STR0.Bit.BIT4=1;CAN_STR0.Bit.BIT5=0;MC33984_fault1.Bit.BIT2=1;break;}	//侧右转向灯1
					case 2:		{CAN_STR1.Bit.BIT0=1;CAN_STR1.Bit.BIT1=0;MC33984_fault1.Bit.BIT4=1;break;}	//左标志灯1
					case 3:		{CAN_STR1.Bit.BIT4=1;CAN_STR1.Bit.BIT5=0;MC33984_fault1.Bit.BIT6=1;break;}	//左标志灯3
					case 4:		{CAN_STR2.Bit.BIT0=1;CAN_STR2.Bit.BIT1=0;MC33984_fault2.Bit.BIT0=1;break;}	//右标志灯2
					case 5:		{CAN_STR2.Bit.BIT4=1;CAN_STR2.Bit.BIT5=0;MC33984_fault2.Bit.BIT2=1;break;}	//左轮边灯
					case 6:		{CAN_STR3.Bit.BIT0=1;CAN_STR3.Bit.BIT1=0;MC33984_fault2.Bit.BIT4=1;break;}	//左行李仓灯1
					case 7:		{CAN_STR3.Bit.BIT4=1;CAN_STR3.Bit.BIT5=0;MC33984_fault2.Bit.BIT6=1;break;}	//左行李仓灯3
					case 8:		{CAN_STR4.Bit.BIT0=1;CAN_STR4.Bit.BIT1=0;MC33984_fault3.Bit.BIT0=1;break;}	//右行李仓灯1
					case 9:		{CAN_STR4.Bit.BIT4=1;CAN_STR4.Bit.BIT5=0;MC33984_fault3.Bit.BIT2=1;break;}	//右行李仓灯3
					case 10:	{CAN_STR5.Bit.BIT0=1;CAN_STR5.Bit.BIT1=0;MC33984_fault3.Bit.BIT4=1;break;}	//前门底踏步灯
					case 11:	{CAN_STR5.Bit.BIT4=1;CAN_STR5.Bit.BIT5=0;MC33984_fault3.Bit.BIT6=1;break;}	//屈膝电磁阀1
					case 12:	{CAN_STR6.Bit.BIT0=1;CAN_STR6.Bit.BIT1=0;MC33984_fault4.Bit.BIT0=1;break;}	//气喇叭
					case 13:	{CAN_STR6.Bit.BIT4=1;CAN_STR6.Bit.BIT5=0;MC33984_fault4.Bit.BIT2=1;break;}	//后门电磁阀开线
					case 14:	{CAN_STR7.Bit.BIT0=1;CAN_STR7.Bit.BIT1=0;MC33984_fault4.Bit.BIT4=1;break;}	//卫生间电源
				}
			}
			else if(MC33984_STATUS0.Bit.BIT4||MC33984_STATUS0.Bit.BIT5)	//短路
			{
				switch(fault_count)
				{
					case 0:		{CAN_STR0.Bit.BIT0=0;CAN_STR0.Bit.BIT1=1;MC33984_fault1.Bit.BIT0=1;break;}	//侧左转向灯1
					case 1:		{CAN_STR0.Bit.BIT4=0;CAN_STR0.Bit.BIT5=1;MC33984_fault1.Bit.BIT2=1;break;}	//侧右转向灯1
					case 2:		{CAN_STR1.Bit.BIT0=0;CAN_STR1.Bit.BIT1=1;MC33984_fault1.Bit.BIT4=1;break;}	//左标志灯1
					case 3:		{CAN_STR1.Bit.BIT4=0;CAN_STR1.Bit.BIT5=1;MC33984_fault1.Bit.BIT6=1;break;}	//左标志灯3
					case 4:		{CAN_STR2.Bit.BIT0=0;CAN_STR2.Bit.BIT1=1;MC33984_fault2.Bit.BIT0=1;break;}	//右标志灯2
					case 5:		{CAN_STR2.Bit.BIT4=0;CAN_STR2.Bit.BIT5=1;MC33984_fault2.Bit.BIT2=1;break;}	//左轮边灯
					case 6:		{CAN_STR3.Bit.BIT0=0;CAN_STR3.Bit.BIT1=1;MC33984_fault2.Bit.BIT4=1;break;}	//左行李仓灯1
					case 7:		{CAN_STR3.Bit.BIT4=0;CAN_STR3.Bit.BIT5=1;MC33984_fault2.Bit.BIT6=1;break;}	//左行李仓灯3
					case 8:		{CAN_STR4.Bit.BIT0=0;CAN_STR4.Bit.BIT1=1;MC33984_fault3.Bit.BIT0=1;break;}	//右行李仓灯1
					case 9:		{CAN_STR4.Bit.BIT4=0;CAN_STR4.Bit.BIT5=1;MC33984_fault3.Bit.BIT2=1;break;}	//右行李仓灯3
					case 10:	{CAN_STR5.Bit.BIT0=0;CAN_STR5.Bit.BIT1=1;MC33984_fault3.Bit.BIT4=1;break;}	//前门底踏步灯
					case 11:	{CAN_STR5.Bit.BIT4=0;CAN_STR5.Bit.BIT5=1;MC33984_fault3.Bit.BIT6=1;break;}	//屈膝电磁阀1
					case 12:	{CAN_STR6.Bit.BIT0=0;CAN_STR6.Bit.BIT1=1;MC33984_fault4.Bit.BIT0=1;break;}	//气喇叭
					case 13:	{CAN_STR6.Bit.BIT4=0;CAN_STR6.Bit.BIT5=1;MC33984_fault4.Bit.BIT2=1;break;}	//后门电磁阀开线
					case 14:	{CAN_STR7.Bit.BIT0=0;CAN_STR7.Bit.BIT1=1;MC33984_fault4.Bit.BIT4=1;break;}	//卫生间电源
				}
			}
			else if(MC33984_STATUS0.Bit.BIT6)							//过热
			{
				switch(fault_count)
				{
					case 0:		{CAN_STR0.Bit.BIT0=1;CAN_STR0.Bit.BIT1=1;MC33984_fault1.Bit.BIT0=1;break;}	//侧左转向灯1
					case 1:		{CAN_STR0.Bit.BIT4=1;CAN_STR0.Bit.BIT5=1;MC33984_fault1.Bit.BIT2=1;break;}	//侧右转向灯1
					case 2:		{CAN_STR1.Bit.BIT0=1;CAN_STR1.Bit.BIT1=1;MC33984_fault1.Bit.BIT4=1;break;}	//左标志灯1
					case 3:		{CAN_STR1.Bit.BIT4=1;CAN_STR1.Bit.BIT5=1;MC33984_fault1.Bit.BIT6=1;break;}	//左标志灯3
					case 4:		{CAN_STR2.Bit.BIT0=1;CAN_STR2.Bit.BIT1=1;MC33984_fault2.Bit.BIT0=1;break;}	//右标志灯2
					case 5:		{CAN_STR2.Bit.BIT4=1;CAN_STR2.Bit.BIT5=1;MC33984_fault2.Bit.BIT2=1;break;}	//左轮边灯
					case 6:		{CAN_STR3.Bit.BIT0=1;CAN_STR3.Bit.BIT1=1;MC33984_fault2.Bit.BIT4=1;break;}	//左行李仓灯1
					case 7:		{CAN_STR3.Bit.BIT4=1;CAN_STR3.Bit.BIT5=1;MC33984_fault2.Bit.BIT6=1;break;}	//左行李仓灯3
					case 8:		{CAN_STR4.Bit.BIT0=1;CAN_STR4.Bit.BIT1=1;MC33984_fault3.Bit.BIT0=1;break;}	//右行李仓灯1
					case 9:		{CAN_STR4.Bit.BIT4=1;CAN_STR4.Bit.BIT5=1;MC33984_fault3.Bit.BIT2=1;break;}	//右行李仓灯3
					case 10:	{CAN_STR5.Bit.BIT0=1;CAN_STR5.Bit.BIT1=1;MC33984_fault3.Bit.BIT4=1;break;}	//前门底踏步灯
					case 11:	{CAN_STR5.Bit.BIT4=1;CAN_STR5.Bit.BIT5=1;MC33984_fault3.Bit.BIT6=1;break;}	//屈膝电磁阀1
					case 12:	{CAN_STR6.Bit.BIT0=1;CAN_STR6.Bit.BIT1=1;MC33984_fault4.Bit.BIT0=1;break;}	//气喇叭
					case 13:	{CAN_STR6.Bit.BIT4=1;CAN_STR6.Bit.BIT5=1;MC33984_fault4.Bit.BIT2=1;break;}	//后门电磁阀开线
					case 14:	{CAN_STR7.Bit.BIT0=1;CAN_STR7.Bit.BIT1=1;MC33984_fault4.Bit.BIT4=1;break;}	//卫生间电源
				}
			}
		}
		if(MC33984_STATUS1.Bit.BIT0)										//HS1有故障?
		{
			if(MC33984_STATUS1.Bit.BIT3)									//开路
			{
				switch(fault_count)
				{
					case 0:		{CAN_STR0.Bit.BIT2=1;CAN_STR0.Bit.BIT3=0;MC33984_fault1.Bit.BIT1=1;break;}	//侧左转向灯2
					case 1:		{CAN_STR0.Bit.BIT6=1;CAN_STR0.Bit.BIT7=0;MC33984_fault1.Bit.BIT3=1;break;}	//侧右转向灯2
					case 2:		{CAN_STR1.Bit.BIT2=1;CAN_STR1.Bit.BIT3=0;MC33984_fault1.Bit.BIT5=1;break;}	//左标志灯2
					case 3:		{CAN_STR1.Bit.BIT6=1;CAN_STR1.Bit.BIT7=0;MC33984_fault1.Bit.BIT7=1;break;}	//右标志灯1
					case 4:		{CAN_STR2.Bit.BIT2=1;CAN_STR2.Bit.BIT3=0;MC33984_fault2.Bit.BIT1=1;break;}	//右标志灯3
					case 5:		{CAN_STR2.Bit.BIT6=1;CAN_STR2.Bit.BIT7=0;MC33984_fault2.Bit.BIT3=1;break;}	//右轮边灯
					case 6:		{CAN_STR3.Bit.BIT2=1;CAN_STR3.Bit.BIT3=0;MC33984_fault2.Bit.BIT5=1;break;}	//左行李仓灯2
					case 7:		{CAN_STR3.Bit.BIT6=1;CAN_STR3.Bit.BIT7=0;MC33984_fault2.Bit.BIT7=1;break;}	//左行李仓灯4
					case 8:		{CAN_STR4.Bit.BIT2=1;CAN_STR4.Bit.BIT3=0;MC33984_fault3.Bit.BIT1=1;break;}	//右行李仓灯2
					case 9:		{CAN_STR4.Bit.BIT6=1;CAN_STR4.Bit.BIT7=0;MC33984_fault3.Bit.BIT3=1;break;}	//右行李仓灯4
					case 10:	{CAN_STR5.Bit.BIT2=1;CAN_STR5.Bit.BIT3=0;MC33984_fault3.Bit.BIT5=1;break;}	//中门底踏步灯
					case 11:	{CAN_STR5.Bit.BIT6=1;CAN_STR5.Bit.BIT7=0;MC33984_fault3.Bit.BIT7=1;break;}	//屈膝电磁阀2
					case 12:	{CAN_STR6.Bit.BIT2=1;CAN_STR6.Bit.BIT3=0;MC33984_fault4.Bit.BIT1=1;break;}	//电喇叭
					case 13:	{CAN_STR6.Bit.BIT6=1;CAN_STR6.Bit.BIT7=0;MC33984_fault4.Bit.BIT3=1;break;}	//后门电磁阀关线
					case 14:	break;
				}
			}
			else if(MC33984_STATUS1.Bit.BIT4||MC33984_STATUS1.Bit.BIT5)	//短路
			{
				switch(fault_count)
				{
					case 0:		{CAN_STR0.Bit.BIT2=0;CAN_STR0.Bit.BIT3=1;MC33984_fault1.Bit.BIT1=1;break;}	//侧左转向灯2
					case 1:		{CAN_STR0.Bit.BIT6=0;CAN_STR0.Bit.BIT7=1;MC33984_fault1.Bit.BIT3=1;break;}	//侧右转向灯2
					case 2:		{CAN_STR1.Bit.BIT2=0;CAN_STR1.Bit.BIT3=1;MC33984_fault1.Bit.BIT5=1;break;}	//左标志灯2
					case 3:		{CAN_STR1.Bit.BIT6=0;CAN_STR1.Bit.BIT7=1;MC33984_fault1.Bit.BIT7=1;break;}	//右标志灯1
					case 4:		{CAN_STR2.Bit.BIT2=0;CAN_STR2.Bit.BIT3=1;MC33984_fault2.Bit.BIT1=1;break;}	//右标志灯3
					case 5:		{CAN_STR2.Bit.BIT6=0;CAN_STR2.Bit.BIT7=1;MC33984_fault2.Bit.BIT3=1;break;}	//右轮边灯
					case 6:		{CAN_STR3.Bit.BIT2=0;CAN_STR3.Bit.BIT3=1;MC33984_fault2.Bit.BIT5=1;break;}	//左行李仓灯2
					case 7:		{CAN_STR3.Bit.BIT6=0;CAN_STR3.Bit.BIT7=1;MC33984_fault2.Bit.BIT7=1;break;}	//左行李仓灯4
					case 8:		{CAN_STR4.Bit.BIT2=0;CAN_STR4.Bit.BIT3=1;MC33984_fault3.Bit.BIT1=1;break;}	//右行李仓灯2
					case 9:		{CAN_STR4.Bit.BIT6=0;CAN_STR4.Bit.BIT7=1;MC33984_fault3.Bit.BIT3=1;break;}	//右行李仓灯4
					case 10:	{CAN_STR5.Bit.BIT2=0;CAN_STR5.Bit.BIT3=1;MC33984_fault3.Bit.BIT5=1;break;}	//中门底踏步灯
					case 11:	{CAN_STR5.Bit.BIT6=0;CAN_STR5.Bit.BIT7=1;MC33984_fault3.Bit.BIT7=1;break;}	//屈膝电磁阀2
					case 12:	{CAN_STR6.Bit.BIT2=0;CAN_STR6.Bit.BIT3=1;MC33984_fault4.Bit.BIT1=1;break;}	//电喇叭
					case 13:	{CAN_STR6.Bit.BIT6=0;CAN_STR6.Bit.BIT7=1;MC33984_fault4.Bit.BIT3=1;break;}	//后门电磁阀关线
					case 14:	break;
				}
			}
			else if(MC33984_STATUS1.Bit.BIT6)							//过热
			{
				switch(fault_count)
				{
					case 0:		{CAN_STR0.Bit.BIT2=1;CAN_STR0.Bit.BIT3=1;MC33984_fault1.Bit.BIT1=1;break;}	//侧左转向灯2
					case 1:		{CAN_STR0.Bit.BIT6=1;CAN_STR0.Bit.BIT7=1;MC33984_fault1.Bit.BIT3=1;break;}	//侧右转向灯2
					case 2:		{CAN_STR1.Bit.BIT2=1;CAN_STR1.Bit.BIT3=1;MC33984_fault1.Bit.BIT5=1;break;}	//左标志灯2
					case 3:		{CAN_STR1.Bit.BIT6=1;CAN_STR1.Bit.BIT7=1;MC33984_fault1.Bit.BIT7=1;break;}	//右标志灯1
					case 4:		{CAN_STR2.Bit.BIT2=1;CAN_STR2.Bit.BIT3=1;MC33984_fault2.Bit.BIT1=1;break;}	//右标志灯3
					case 5:		{CAN_STR2.Bit.BIT6=1;CAN_STR2.Bit.BIT7=1;MC33984_fault2.Bit.BIT3=1;break;}	//右轮边灯
					case 6:		{CAN_STR3.Bit.BIT2=1;CAN_STR3.Bit.BIT3=1;MC33984_fault2.Bit.BIT5=1;break;}	//左行李仓灯2
					case 7:		{CAN_STR3.Bit.BIT6=1;CAN_STR3.Bit.BIT7=1;MC33984_fault2.Bit.BIT7=1;break;}	//左行李仓灯4
					case 8:		{CAN_STR4.Bit.BIT2=1;CAN_STR4.Bit.BIT3=1;MC33984_fault3.Bit.BIT1=1;break;}	//右行李仓灯2
					case 9:		{CAN_STR4.Bit.BIT6=1;CAN_STR4.Bit.BIT7=1;MC33984_fault3.Bit.BIT3=1;break;}	//右行李仓灯4
					case 10:	{CAN_STR5.Bit.BIT2=1;CAN_STR5.Bit.BIT3=1;MC33984_fault3.Bit.BIT5=1;break;}	//中门底踏步灯
					case 11:	{CAN_STR5.Bit.BIT6=1;CAN_STR5.Bit.BIT7=1;MC33984_fault3.Bit.BIT7=1;break;}	//屈膝电磁阀2
					case 12:	{CAN_STR6.Bit.BIT2=1;CAN_STR6.Bit.BIT3=1;MC33984_fault4.Bit.BIT1=1;break;}	//电喇叭
					case 13:	{CAN_STR6.Bit.BIT6=1;CAN_STR6.Bit.BIT7=1;MC33984_fault4.Bit.BIT3=1;break;}	//后门电磁阀关线
					case 14:	break;
				}
			}
		}
		fault_count++;												//故障计数器+1
		if(fault_count>14)	fault_count=0;							//故障计数器最大为14
		fault_ok=0;												//清故障检测标志
	}
}
/////////////////////////////////////////////////////////////
//定义:      void OUT_STA(void) 
//描述:      本地命令,执行操作      
/////////////////////////////////////////////////////////////
void OUT_STA(void)
{
	//左行李仓灯开关1
	if(SGL_status.Bit.BIT2&&MC33984_fault2.Bit.BIT4==0)	MC33984_OUT[6].Bit.BIT0=1;	//无故障开	左行李仓灯1
	else												MC33984_OUT[6].Bit.BIT0=0;
	//左行李仓灯开关2
	if(SGL_status.Bit.BIT3&&MC33984_fault2.Bit.BIT5==0)	MC33984_OUT[6].Bit.BIT2=1;	//无故障开	左行李仓灯2
	else												MC33984_OUT[6].Bit.BIT2=0;
	//左行李仓灯开关3
	if(SGL_status.Bit.BIT4&&MC33984_fault2.Bit.BIT6==0)	MC33984_OUT[7].Bit.BIT0=1;	//无故障开	左行李仓灯3
	else												MC33984_OUT[7].Bit.BIT0=0;
	//左行李仓灯开关4
	if(SGL_status.Bit.BIT5&&MC33984_fault2.Bit.BIT7==0)	MC33984_OUT[7].Bit.BIT2=1;	//无故障开	左行李仓灯4
	else												MC33984_OUT[7].Bit.BIT2=0;
	//右行李仓灯开关1
	if(SGL_status.Bit.BIT6&&MC33984_fault3.Bit.BIT0==0)	MC33984_OUT[8].Bit.BIT0=1;	//无故障开	右行李仓灯1
	else												MC33984_OUT[8].Bit.BIT0=0;
	//右行李仓灯开关2
	if(SGL_status.Bit.BIT7&&MC33984_fault3.Bit.BIT1==0)	MC33984_OUT[8].Bit.BIT2=1;	//无故障开	右行李仓灯2
	else												MC33984_OUT[8].Bit.BIT2=0;
	//右行李仓灯开关3
	if(SGH_status.Bit.BIT0&&MC33984_fault3.Bit.BIT2==0)	MC33984_OUT[9].Bit.BIT0=1;	//无故障开	右行李仓灯3
	else												MC33984_OUT[9].Bit.BIT0=0;
	//右行李仓灯开关4
	if(SGH_status.Bit.BIT1&&MC33984_fault3.Bit.BIT3==0)	MC33984_OUT[9].Bit.BIT2=1;	//无故障开	右行李仓灯4
	else												MC33984_OUT[9].Bit.BIT2=0;
	//后门防夹开关
	if(SP_status.Bit.BIT0==0&&MC33984_fault4.Bit.BIT2==0) MC33984_OUT[13].Byte=0x1b;//无故障开  后门电磁阀开线
	else if(door_flag==0||MC33984_fault4.Bit.BIT2)        MC33984_OUT[13].Byte=0x1a;
}
/////////////////////////////////////////////////////////////
//定义:      void DOOR_OUT(void) 
//描述:      接收仪表CAN命令,执行后门操作      
/////////////////////////////////////////////////////////////
void DOOR_OUT(void)
{
	//后门开关-开
	if(CAN_YB4.Bit.BIT0==1&&CAN_YB4.Bit.BIT1==0&&door_open)
	{
		door_open=0;
		door_close=1;
		door_count=0;
		door_flag=1;
		if(MC33984_fault4.Bit.BIT2)	MC33984_OUT[13].Byte=0x1a;				//无故障开	后门电磁阀开线
		else						MC33984_OUT[13].Byte=0x1b;
		
	}
	else if(CAN_YB4.Bit.BIT1==1&&CAN_YB4.Bit.BIT0==0&&door_close)
	{
		door_close=0;
		door_open=1;
		if(MC33984_fault4.Bit.BIT3)	MC33984_OUT[13].Byte=0x1a;				//无故障开	后门电磁阀关线
		else						MC33984_OUT[13].Byte=0x1e;
		door_count=0;
		door_flag=1;
	}
}
/////////////////////////////////////////////////////////////
//定义:      void CAN_YB(void) 
//描述:      接收仪表CAN命令,执行操作      
/////////////////////////////////////////////////////////////
void CAN_YB(void)
{
	//点火锁ON档
	if(CAN_YB0.Bit.BIT0==1&&CAN_YB0.Bit.BIT1==0&&MC33984_fault4.Bit.BIT4==0)	MC33984_OUT[14].Bit.BIT0=1;	//无故障开	卫生间电源
	else																		MC33984_OUT[14].Bit.BIT0=0;
	//左转向
	if(CAN_YB1.Bit.BIT6==1&&CAN_YB1.Bit.BIT7==0)
	{
		if(MC33984_fault1.Bit.BIT0)	MC33984_OUT[0].Bit.BIT0=0;				//无故障开	侧左转向灯1
		else						MC33984_OUT[0].Bit.BIT0=1;
		if(MC33984_fault1.Bit.BIT1)	MC33984_OUT[0].Bit.BIT2=0;				//无故障开	侧左转向灯2
		else						MC33984_OUT[0].Bit.BIT2=1;
	}
	else							MC33984_OUT[0].Byte=0x1a;
	//右转向
	if(CAN_YB2.Bit.BIT0==1&&CAN_YB2.Bit.BIT1==0)
	{
		if(MC33984_fault1.Bit.BIT2)	MC33984_OUT[1].Bit.BIT0=0;				//无故障开	侧右转向灯1
		else						MC33984_OUT[1].Bit.BIT0=1;
		if(MC33984_fault1.Bit.BIT3)	MC33984_OUT[1].Bit.BIT2=0;				//无故障开	侧右转向灯2
		else						MC33984_OUT[1].Bit.BIT2=1;
	}
	else							MC33984_OUT[1].Byte=0x1a;
	//小灯一档、前雾灯开关
	if((CAN_YB2.Bit.BIT4==1&&CAN_YB2.Bit.BIT5==0)||(CAN_YB3.Bit.BIT2==1&&CAN_YB3.Bit.BIT3==0))
	{
		if(MC33984_fault1.Bit.BIT4)	MC33984_OUT[2].Bit.BIT0=0;				//无故障开	左标志灯1
		else						MC33984_OUT[2].Bit.BIT0=1;
		if(MC33984_fault1.Bit.BIT5)	MC33984_OUT[2].Bit.BIT2=0;				//无故障开	左标志灯2
		else						MC33984_OUT[2].Bit.BIT2=1;
		if(MC33984_fault1.Bit.BIT6)	MC33984_OUT[3].Bit.BIT0=0;				//无故障开	左标志灯3
		else						MC33984_OUT[3].Bit.BIT0=1;
		if(MC33984_fault1.Bit.BIT7)	MC33984_OUT[3].Bit.BIT2=0;				//无故障开	右标志灯1
		else						MC33984_OUT[3].Bit.BIT2=1;
		if(MC33984_fault2.Bit.BIT0)	MC33984_OUT[4].Bit.BIT0=0;				//无故障开	右标志灯2
		else						MC33984_OUT[4].Bit.BIT0=1;
		if(MC33984_fault2.Bit.BIT1)	MC33984_OUT[4].Bit.BIT2=0;				//无故障开	右标志灯3
		else						MC33984_OUT[4].Bit.BIT2=1;
		if(MC33984_fault2.Bit.BIT2)	MC33984_OUT[5].Bit.BIT0=0;				//无故障开	左轮边灯
		else						MC33984_OUT[5].Bit.BIT0=1;
		if(MC33984_fault2.Bit.BIT3)	MC33984_OUT[5].Bit.BIT2=0;				//无故障开	右轮边灯
		else						MC33984_OUT[5].Bit.BIT2=1;
		//踏步灯开关
		if(CAN_QKZC4.Bit.BIT0==1&&CAN_QKZC4.Bit.BIT1==0&&MC33984_fault3.Bit.BIT4==0)	MC33984_OUT[10].Bit.BIT0=1;	//无故障开	前门底踏步灯
		else																			MC33984_OUT[10].Bit.BIT0=0;
		//后踏步灯开关
		if(SP_status.Bit.BIT1==0&&MC33984_fault3.Bit.BIT5==0)	MC33984_OUT[10].Bit.BIT2=1;	//无故障开	中门底踏步灯
		else													MC33984_OUT[10].Bit.BIT2=0;
	}
	else
	{
		MC33984_OUT[2].Byte=0x1a;
		MC33984_OUT[3].Byte=0x1a;
		MC33984_OUT[4].Byte=0x1a;
		MC33984_OUT[5].Byte=0x1a;
		MC33984_OUT[10].Byte=0x1a;
	}
	//喇叭开关
	if(CAN_YB2.Bit.BIT2==1&&CAN_YB2.Bit.BIT3==0)
	{
		//电/气喇叭转换开关
		if(CAN_QKYC3.Bit.BIT2==1&&CAN_QKYC3.Bit.BIT3==0&&MC33984_fault4.Bit.BIT0==0)		MC33984_OUT[12].Byte=0x1b;	//无故障开	气喇叭
		else if(CAN_QKYC3.Bit.BIT2==0&&CAN_QKYC3.Bit.BIT3==0&&MC33984_fault4.Bit.BIT1==0)	MC33984_OUT[12].Byte=0x1e;	//无故障开	电喇叭
		else																				MC33984_OUT[12].Byte=0x1a;
	}
	else																					MC33984_OUT[12].Byte=0x1a;
}
/////////////////////////////////////////////////////////////
//定义:      void CAN_QKYC(void) 
//描述:      接收仪表CAN命令,执行操作      
/////////////////////////////////////////////////////////////
void CAN_QKYC(void)
{
	//屈膝开关
	if(CAN_QKYC1.Bit.BIT6==1&&CAN_QKYC1.Bit.BIT7==0)
	{
		if(MC33984_fault3.Bit.BIT6)	MC33984_OUT[11].Bit.BIT0=0;				//无故障开	屈膝电磁阀1
		else						MC33984_OUT[11].Bit.BIT0=1;
		if(MC33984_fault3.Bit.BIT7)	MC33984_OUT[11].Bit.BIT2=0;				//无故障开	屈膝电磁阀2
		else						MC33984_OUT[11].Bit.BIT2=1;
	}
	else							MC33984_OUT[11].Byte=0x1a;
}
//////////////////////////////////////////////////////////////
//定义:	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.BIT4)	MC33984_OUT[10].Bit.BIT0=0;
	if(MC33984_fault3.Bit.BIT5)	MC33984_OUT[10].Bit.BIT2=0;
	if(MC33984_fault3.Bit.BIT6)	MC33984_OUT[11].Bit.BIT0=0;
	if(MC33984_fault3.Bit.BIT7)	MC33984_OUT[11].Bit.BIT2=0;
	
	if(MC33984_fault4.Bit.BIT0)	MC33984_OUT[12].Bit.BIT0=0;
	if(MC33984_fault4.Bit.BIT1)	MC33984_OUT[12].Bit.BIT2=0;
	if(MC33984_fault4.Bit.BIT2)	MC33984_OUT[13].Bit.BIT0=0;
	if(MC33984_fault4.Bit.BIT3)	MC33984_OUT[13].Bit.BIT2=0;
	if(MC33984_fault4.Bit.BIT4)	MC33984_OUT[14].Bit.BIT0=0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -