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

📄 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[5];//,fault4_count[5];	//故障清除计数器

sys_data_type	_SUB_FLAGS1;

#define		xidi_flag		_SUB_FLAGS1.Bit.BIT0
#define		rain_stop		_SUB_FLAGS1.Bit.BIT1
#define		rain_int		_SUB_FLAGS1.Bit.BIT2
#define		int_clk			_SUB_FLAGS1.Bit.BIT3
#define		door_close	_SUB_FLAGS1.Bit.BIT4
#define		door_open		_SUB_FLAGS1.Bit.BIT5
#define		door_flag		_SUB_FLAGS1.Bit.BIT6
#define   rain_brush  _SUB_FLAGS1.Bit.BIT7

unsigned char	door_count=0;
unsigned char	xidi_count=0;
unsigned char	xidi_rain=0;
unsigned char	stop_count=0;
unsigned int	int_count=0;
unsigned char	int_time=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(无故障现象)、高过流与低过流并存、短路与开路并存,通道0检测无效
		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;}	//右前小灯
					case 1:		{CAN_STR0.Bit.BIT4=1;CAN_STR0.Bit.BIT5=0;MC33984_fault1.Bit.BIT2=1;break;}	//右近光灯
					case 2:		{CAN_STR1.Bit.BIT0=1;CAN_STR1.Bit.BIT1=0;MC33984_fault1.Bit.BIT4=1;break;}	//右远光灯
					case 3:		{CAN_STR1.Bit.BIT4=1;CAN_STR1.Bit.BIT5=0;MC33984_fault1.Bit.BIT6=1;break;}	//右前雾灯
					case 4:		{CAN_STR2.Bit.BIT0=1;CAN_STR2.Bit.BIT1=0;MC33984_fault2.Bit.BIT0=1;break;}	//监视器电源
					case 5:		break;//{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;}	//前门电磁阀开
					case 7:		{CAN_STR3.Bit.BIT4=1;CAN_STR3.Bit.BIT5=0;MC33984_fault2.Bit.BIT6=1;break;}	//除霜电机高速
					case 8:		{CAN_STR4.Bit.BIT0=1;CAN_STR4.Bit.BIT1=0;MC33984_fault3.Bit.BIT0=1;break;}	//音响电源
					case 9:		{CAN_STR4.Bit.BIT4=1;CAN_STR4.Bit.BIT5=0;MC33984_fault3.Bit.BIT2=1;break;}	//开关有效电源
					case 10:	break;
					case 11:	{CAN_STR5.Bit.BIT2=1;CAN_STR5.Bit.BIT3=0;MC33984_fault3.Bit.BIT6=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;}	//右前小灯
					case 1:		{CAN_STR0.Bit.BIT4=0;CAN_STR0.Bit.BIT5=1;MC33984_fault1.Bit.BIT2=1;break;}	//右近光灯
					case 2:		{CAN_STR1.Bit.BIT0=0;CAN_STR1.Bit.BIT1=1;MC33984_fault1.Bit.BIT4=1;break;}	//右远光灯
					case 3:		{CAN_STR1.Bit.BIT4=0;CAN_STR1.Bit.BIT5=1;MC33984_fault1.Bit.BIT6=1;break;}	//右前雾灯
					case 4:		{CAN_STR2.Bit.BIT0=0;CAN_STR2.Bit.BIT1=1;MC33984_fault2.Bit.BIT0=1;break;}	//监视器电源
					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;}	//前门电磁阀开
					case 7:		{CAN_STR3.Bit.BIT4=0;CAN_STR3.Bit.BIT5=1;MC33984_fault2.Bit.BIT6=1;break;}	//除霜电机高速
					case 8:		{CAN_STR4.Bit.BIT0=0;CAN_STR4.Bit.BIT1=1;MC33984_fault3.Bit.BIT0=1;break;}	//音响电源
					case 9:		{CAN_STR4.Bit.BIT4=0;CAN_STR4.Bit.BIT5=1;MC33984_fault3.Bit.BIT2=1;break;}	//开关有效电源
					case 10:	break;
					case 11:	{CAN_STR5.Bit.BIT2=0;CAN_STR5.Bit.BIT3=1;MC33984_fault3.Bit.BIT6=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;}	//右前小灯
					case 1:		{CAN_STR0.Bit.BIT4=1;CAN_STR0.Bit.BIT5=1;MC33984_fault1.Bit.BIT2=1;break;}	//右近光灯
					case 2:		{CAN_STR1.Bit.BIT0=1;CAN_STR1.Bit.BIT1=1;MC33984_fault1.Bit.BIT4=1;break;}	//右远光灯
					case 3:		{CAN_STR1.Bit.BIT4=1;CAN_STR1.Bit.BIT5=1;MC33984_fault1.Bit.BIT6=1;break;}	//右前雾灯
					case 4:		{CAN_STR2.Bit.BIT0=1;CAN_STR2.Bit.BIT1=1;MC33984_fault2.Bit.BIT0=1;break;}	//监视器电源
					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;}	//前门电磁阀开
					case 7:		{CAN_STR3.Bit.BIT4=1;CAN_STR3.Bit.BIT5=1;MC33984_fault2.Bit.BIT6=1;break;}	//除霜电机高速
					case 8:		{CAN_STR4.Bit.BIT0=1;CAN_STR4.Bit.BIT1=1;MC33984_fault3.Bit.BIT0=1;break;}	//音响电源
					case 9:		{CAN_STR4.Bit.BIT4=1;CAN_STR4.Bit.BIT5=1;MC33984_fault3.Bit.BIT2=1;break;}	//开关有效电源
					case 10:	break;
					case 11:	{CAN_STR5.Bit.BIT2=1;CAN_STR5.Bit.BIT3=1;MC33984_fault3.Bit.BIT6=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;}	//开关背光电源
					case 1:		{CAN_STR0.Bit.BIT6=1;CAN_STR0.Bit.BIT7=0;MC33984_fault1.Bit.BIT3=1;break;}	//前右转向灯
					case 2:		break;//{CAN_STR1.Bit.BIT2=1;CAN_STR1.Bit.BIT3=0;MC33984_fault1.Bit.BIT5=1;break;}	//洗涤电机
					case 3:		{CAN_STR1.Bit.BIT6=1;CAN_STR1.Bit.BIT7=0;MC33984_fault1.Bit.BIT7=1;break;}	//右镜加热器
					case 4:		{CAN_STR2.Bit.BIT2=1;CAN_STR2.Bit.BIT3=0;MC33984_fault2.Bit.BIT1=1;break;}	//ABS ON档电源
					case 5:		break;//{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;}	//前门电磁阀关
					case 7:		{CAN_STR3.Bit.BIT6=1;CAN_STR3.Bit.BIT7=0;MC33984_fault2.Bit.BIT7=1;break;}	//除霜电机低速
					case 8:		{CAN_STR4.Bit.BIT2=1;CAN_STR4.Bit.BIT3=0;MC33984_fault3.Bit.BIT1=1;break;}	//行驶记录仪电源
					case 9:		{CAN_STR4.Bit.BIT6=1;CAN_STR4.Bit.BIT7=0;MC33984_fault3.Bit.BIT3=1;break;}	//缓速器控制电源输出
					case 10:	break;
					case 11:	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;}	//开关背光电源
					case 1:		{CAN_STR0.Bit.BIT6=0;CAN_STR0.Bit.BIT7=1;MC33984_fault1.Bit.BIT3=1;break;}	//前右转向灯
					case 2:		{CAN_STR1.Bit.BIT2=0;CAN_STR1.Bit.BIT3=1;MC33984_fault1.Bit.BIT5=1;break;}	//洗涤电机
					case 3:		{CAN_STR1.Bit.BIT6=0;CAN_STR1.Bit.BIT7=1;MC33984_fault1.Bit.BIT7=1;break;}	//右镜加热器
					case 4:		{CAN_STR2.Bit.BIT2=0;CAN_STR2.Bit.BIT3=1;MC33984_fault2.Bit.BIT1=1;break;}	//ABS ON档电源
					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;}	//前门电磁阀关
					case 7:		{CAN_STR3.Bit.BIT6=0;CAN_STR3.Bit.BIT7=1;MC33984_fault2.Bit.BIT7=1;break;}	//除霜电机低速
					case 8:		{CAN_STR4.Bit.BIT2=0;CAN_STR4.Bit.BIT3=1;MC33984_fault3.Bit.BIT1=1;break;}	//行驶记录仪电源
					case 9:		{CAN_STR4.Bit.BIT6=0;CAN_STR4.Bit.BIT7=1;MC33984_fault3.Bit.BIT3=1;break;}	//缓速器控制电源输出
					case 10:	break;
					case 11:	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;}	//开关背光电源
					case 1:		{CAN_STR0.Bit.BIT6=1;CAN_STR0.Bit.BIT7=1;MC33984_fault1.Bit.BIT3=1;break;}	//前右转向灯
					case 2:		{CAN_STR1.Bit.BIT2=1;CAN_STR1.Bit.BIT3=1;MC33984_fault1.Bit.BIT5=1;break;}	//洗涤电机
					case 3:		{CAN_STR1.Bit.BIT6=1;CAN_STR1.Bit.BIT7=1;MC33984_fault1.Bit.BIT7=1;break;}	//右镜加热器
					case 4:		{CAN_STR2.Bit.BIT2=1;CAN_STR2.Bit.BIT3=1;MC33984_fault2.Bit.BIT1=1;break;}	//ABS ON档电源
					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;}	//前门电磁阀关
					case 7:		{CAN_STR3.Bit.BIT6=1;CAN_STR3.Bit.BIT7=1;MC33984_fault2.Bit.BIT7=1;break;}	//除霜电机低速
					case 8:		{CAN_STR4.Bit.BIT2=1;CAN_STR4.Bit.BIT3=1;MC33984_fault3.Bit.BIT1=1;break;}	//行驶记录仪电源
					case 9:		{CAN_STR4.Bit.BIT6=1;CAN_STR4.Bit.BIT7=1;MC33984_fault3.Bit.BIT3=1;break;}	//缓速器控制电源输出
					case 10:	break;
					case 11:	break;
				}
			}
		}
		fault_count++;											//故障计数器+1
		if(fault_count>11)	fault_count=0;						//故障计数器最大为9
		fault_ok=0;												//清故障检测完成标志
	}
}
/////////////////////////////////////////////////////////////
//定义:      void OUT_STA(void) 
//描述:      本地命令,执行操作      
/////////////////////////////////////////////////////////////
void OUT_STA(void)
{
	if(SP_status.Bit.BIT0)
	{
		if(MC33984_fault1.Bit.BIT7)	MC33984_OUT[3].Bit.BIT2=0;				//无故障开	右镜加热器
		else						MC33984_OUT[3].Bit.BIT2=1;
	}
	else							MC33984_OUT[3].Bit.BIT2=0;
}
/////////////////////////////////////////////////////////////
//定义:      void DOOR_OUT(void) 
//描述:      接收仪表CAN命令,执行前门操作      
/////////////////////////////////////////////////////////////
void DOOR_OUT(void)
{
	//前门开关-开
	if(CAN_YB3.Bit.BIT6==1&&CAN_YB3.Bit.BIT7==0)
	{
		door_close=1;
		if(door_open)
		{
			door_count=0;													//工作1s
			door_flag=1;
			door_open=0;
			if(MC33984_fault2.Bit.BIT4)	MC33984_OUT[6].Byte=0x1a;			//无故障开	前门电磁阀开线
			else						MC33984_OUT[6].Byte=0x1b;
		}
	}
	//前门开关-关
	else if(CAN_YB3.Bit.BIT6==0&&CAN_YB3.Bit.BIT7==1)
	{
		door_open=1;
		if(door_close)
		{
			door_close=0;
			if(MC33984_fault2.Bit.BIT5)	MC33984_OUT[6].Byte=0x1a;			//无故障开	前门电磁阀关线
			else						MC33984_OUT[6].Byte=0x1e;
			door_count=0;													//工作1s
			door_flag=1;
		}
	}
}
/////////////////////////////////////////////////////////////
//定义:      void CAN_YB(void) 
//描述:      接收仪表CAN命令,执行操作      
/////////////////////////////////////////////////////////////
void CAN_YB(void)					//513
{
	//小灯一档、前雾灯开关
	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.BIT0)	MC33984_OUT[0].Bit.BIT0=0;				//无故障开	右前小灯
		else						MC33984_OUT[0].Bit.BIT0=1;
		if(MC33984_fault1.Bit.BIT1)	MC33984_OUT[0].Bit.BIT2=0;				//无故障开	开关背光电源
		else						MC33984_OUT[0].Bit.BIT2=1;
		asm	nop
	}
	else
	{
		MC33984_OUT[0].Byte=0x1a;											//关
	}
	//前雾灯开关
	if(CAN_YB3.Bit.BIT2==1&&CAN_YB3.Bit.BIT3==0)
	{
		if(MC33984_fault1.Bit.BIT6)	MC33984_OUT[3].Bit.BIT0=0;				//无故障开	右前雾灯
		else						MC33984_OUT[3].Bit.BIT0=1;
	}
	else							MC33984_OUT[3].Bit.BIT0=0;
	//远光灯开关
	if(CAN_YB2.Bit.BIT6==1&&CAN_YB2.Bit.BIT7==0)
	{
		if(MC33984_fault1.Bit.BIT2)	MC33984_OUT[1].Bit.BIT0=0;				//无故障开	右近光灯
		else						MC33984_OUT[1].Bit.BIT0=1;
		if(MC33984_fault1.Bit.BIT4)	MC33984_OUT[2].Bit.BIT0=0;				//无故障开	右远光灯
		else						MC33984_OUT[2].Bit.BIT0=1;
	}
	else
	{
		MC33984_OUT[2].Bit.BIT0=0;
		//近光灯开关
		if(CAN_YB3.Bit.BIT0==1&&CAN_YB3.Bit.BIT1==0)
		{
			if(MC33984_fault1.Bit.BIT2)	MC33984_OUT[1].Bit.BIT0=0;			//无故障开	右近光灯
			else						MC33984_OUT[1].Bit.BIT0=1;
		}
		else							MC33984_OUT[1].Bit.BIT0=0;
	}
	//右转向开关
	if(CAN_YB2.Bit.BIT0==1&&CAN_YB2.Bit.BIT1==0)
	{
		if(MC33984_fault1.Bit.BIT3)	MC33984_OUT[1].Bit.BIT2=0;				//无故障开	前右转向灯
		else						MC33984_OUT[1].Bit.BIT2=1;
	}
	else	MC33984_OUT[1].Bit.BIT2=0;
	//雨刮间歇
/*	if(CAN_YB1.Bit.BIT0==1&&CAN_YB1.Bit.BIT1==0)
	{
		xidi_flag=0;
		xidi_count=0;
		xidi_flag=0;
		rain_brush=1;
		if(rain_int==0) {
		rain_int=1;
		rain_stop=1;
		stop_count=0;
		MC33984_OUT[5].Byte=0x1e;
		int_count=0;int_time=2;
		}
		if(rain_int==0)
		{
			stop_count=0;													//到位检测延时计数器
			int_time=CAN_YB7.Byte;											//雨刮间歇时长
			int_count=0;
			//asm	nop
			//rain_int=1;														//设雨刮间歇启动标志
			rain_stop=1;													//设雨刮到位信号检测标志
																//间歇时长计数器清零
			if(MC33984_fault2.Bit.BIT3)	MC33984_OUT[5].Byte=0x1a;			//无故障开	雨刮低速
			else						MC33984_OUT[5].Byte=0x1e;
			asm	nop
		}
		else
		{
			if(int_time!=CAN_YB7.Byte)										//时长变化
			{
				int_time=CAN_YB7.Byte;										//保存时长
				if(MC33984_OUT[5].Byte==0x1a&&int_count>=int_time)			//雨刮停止且间歇时长计数器不小于间歇时长
				{
					rain_stop=1;											//设雨刮到位信号检测标志
					stop_count=0;											//到位检测延时计数器
					int_count=0;											//间歇时长计数器清零
					if(MC33984_fault2.Bit.BIT3)	MC33984_OUT[5].Byte=0x1a;	//无故障开	雨刮低速
					else						MC33984_OUT[5].Byte=0x1e;
				}
			}
		}
		rain_brush=1;
		//rain_int=1;
		rain_brush=1;
	}
	//雨刮高速
	else */if(CAN_YB1.Bit.BIT4==1&&CAN_YB1.Bit.BIT5==0)
	{
		rain_int=0;
		xidi_count=0;
		
		rain_int=0;
		rain_brush=1;
		if(MC33984_fault2.Bit.BIT2)	MC33984_OUT[5].Byte=0x1a;				//无故障开	雨刮高速
		else						MC33984_OUT[5].Byte=0x1b;
		xidi_flag=0;

	}
	//雨刮低速
	else if(CAN_YB1.Bit.BIT2==1&&CAN_YB1.Bit.BIT3==0)
	{
		
		rain_brush=1;
		rain_int=0;
		xidi_flag=0;
		if(MC33984_fault2.Bit.BIT3)	MC33984_OUT[5].Byte=0x1a;				//无故障开	雨刮低速
		else						MC33984_OUT[5].Byte=0x1e;
		xidi_count=0;
		
	}
	else if(CAN_YB1.Bit.BIT0==0&&CAN_YB1.Bit.BIT1==0)
	{
		rain_int=0;
		if(MC33984_OUT[5].Byte==0x1b&&MC33984_fault2.Bit.BIT3==0)	MC33984_OUT[5].Byte=0x1e;	//禁止雨刮由高速直接停止
		if(SGH_status.Bit.BIT4&&xidi_flag==0)	MC33984_OUT[5].Byte=0x1a;
		rain_brush=0;
	}
	//洗涤电机
	if(CAN_YB0.Bit.BIT6==1&&CAN_YB0.Bit.BIT7==0)
	{
		if(MC33984_fault1.Bit.BIT5)	MC33984_OUT[2].Bit.BIT2=0;				//无故障开	洗涤电机
		else						MC33984_OUT[2].Bit.BIT2=1;
		if(rain_brush==0&&rain_int==0)							//雨刮无动作
		{
			if(xidi_count==10)												//0.5s
			{
				xidi_flag=1;
				if(MC33984_fault2.Bit.BIT3)	MC33984_OUT[5].Byte=0x1a;		//无故障开	雨刮低速
				else						MC33984_OUT[5].Byte=0x1e;
			}
			else	xidi_count++;
			xidi_rain=0;
		}
	}
	else
	{
		xidi_count=0;
		MC33984_OUT[2].Bit.BIT2=0;
		if(xidi_flag)														//标志为1,雨刮在工作
		{
			if(xidi_rain==0)												//检测第一次雨刮到位信号
			{
				if(SGH_status.Bit.BIT4)	xidi_rain++;

⌨️ 快捷键说明

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