經典MCU延時

/**
  * @brief  This function handles SysTick Handler.
  * @param  None
  * @retval None
  */
volatile unsigned int u32SysTicks = 0;  
void SysTick_Handler(void)
{
     u32SysTicks++;
}       



#define OBD_DELAY_TIME			5000	
static volatile unsigned int u32DelayTimer3 = 0;

if(u32SysTicks > u32DelayTimer3)
{
	if((u32SysTicks - u32DelayTimer3) > OBD_DELAY_TIME)
	{		
		if(obd_delay_flag==0)
		{
			obd_delay_flag=1;
			send_usart(2,"ATCAR=2\r\n",9);
		}					
		u32DelayTimer3 = u32SysTicks;			
	}
}
else if(u32SysTicks < u32DelayTimer3)
{
	if((0xffffffff - u32DelayTimer3 + u32SysTicks) > OBD_DELAY_TIME)
	{
		if(obd_delay_flag==0)
		{
			obd_delay_flag=1;
			send_usart(2,"ATCAR=2\r\n",9);
		}				
		u32DelayTimer3 = u32SysTicks;
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章