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

📄 timer.h

📁 客车车身控制模块 分为仪表部分 前控左 前控右 尾控和中控程序模块
💻 H
字号:

//**************************定时器初始化函数OK***********************************
static void Init_TBM(void)		//时基定时器
{
	TBCR_TBIE =1;				//2 基础定时器中断使能
	TBCR_TACK =1;				//3	TBM中断标志清除
            
	TBCR_TBR0 =1;
	TBCR_TBR1 =1;
	TBCR_TBR2 =0;				//分频系数16384,4.096ms
/*	TBR2	TBR1	TBR0	Divider Tap
							TMBCLKSEL
							0		1
	0		0		0		32,768	4,194,304
	0		0		1		8192	1,048,576
	0		1		0		2048	262144
	0		1		1		128		16,384
	1		0		0		64		8192
	1		0		1		32		4096
	1		1		0		16		2048
	1	 	1		1		8		1024
*/
	TBCR_TBIF =1;				//7 中断标志
	TBCR_TBON =1;				//0 启动定时器
	//2E    0010 1110
}
//**************************定时器中断函数***********************************
void interrupt 17 INT_TBM(void)	//4.096ms
{
/*	if(flag1||flag2)  {
		 Dog_MC33389();										//MC33389喂狗
		 Dog_MC33389();										//MC33389喂狗
		 flag1=0;
		 flag2=0;
	}
	*/
	LED_count++;
	if(LED_count==122)										//0.5s
	{
		LED_count=0;
		if(VACC_WAKE||INC_WAKE)	LED=!LED;					//系统指示灯
		else					LED=1;
		fault_flag=1;										//MC33984故障检测标志
		fault_clk=1;										//MC33984故障清除标志
	}
	//喂狗、开关量检测
	dog_count++;
	if(dog_count==27)										//110ms
	{
		dog_count=0;
		Dog_MC33389();										//MC33389喂狗
		Dog_MC33984();										//MC33984喂狗
		
		RD33993(0x00,0x00,0x00);							//MC33993状态检测
		MC33993_FLAG=1;										//检测完成标志
		if(can_yb_flag)
		{
			INC_WAKE=0;
			can_yb_flag=0;
			//if(VACC_WAKE) {
			  //delay5ms(200);delay5ms(200);delay5ms(200);delay5ms(200);delay5ms(200);
			//}
		}
		else if(INC_WAKE)	can_yb_flag=1;
		
	}
	//门蜂鸣器
	if(door_buzzer)
	{
		buzzer_count++;
		if(buzzer_count==732)
		{
			buzzer_count=0;
			door_buzzer=0;
			if(fail_buzzer==0)	MC33984_OUT[4].Bit.BIT2=0;	//无故障报警,关蜂鸣器
		}
	}
	//休眠、唤醒
	if(VACC_WAKE||INC_WAKE)
	{
		//CAN通信
		can_comm_count++;
		if(can_comm_count==11)
		{
			CAN_CMD();					//45ms发送CAN命令
			if(SLEEP_FLAG)	VACC_WAKE=0;
		}
		else if(can_comm_count==12)							//50ms发送CAN状态
		{
			can_comm_count=0;
			CAN_STR();
		}
	}
	//MC33984端口刷新
	out_count++;
	if(out_count==11)
	{
		out_count=0;
		Out_MC33984();
	}
	
	//MC33984故障检测
	if(fault_flag&&fault_ok==0)	FAULT_MC33984();			//0.5s

	TBCR_TACK =1;											//清除中断标志
}

⌨️ 快捷键说明

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