#include "hw.h"

/*!
 *  \brief	延时函数（微秒） 
 */
void Delay_us(uint16_t us)
{
	SysTick -> CTRL = 0;					//失能SysTick
	SysTick -> LOAD = 72 * us - 1;			//设置重装值
	SysTick -> VAL = 0;						//设置当前值为0
	SysTick -> CTRL = 5;					//设置SysTick时钟为AHB（72MHz），并使能SysTick
	while ((SysTick -> CTRL & 0x00010000) == 0);		//等待标志位置0
	SysTick->VAL = 0;						//设置当前值为0
}	


/*!
 *  \brief	延时函数（毫秒） 
 */
void Delay_ms(uint16_t ms)
{	
	while(ms--)
	{
		SysTick -> CTRL = 0;					//失能SysTick
		SysTick -> LOAD = 72000  - 1;			//设置重装值
		SysTick -> VAL = 0;						//设置当前值为0
		SysTick -> CTRL = 5;					//设置SysTick时钟为AHB（72MHz），并使能SysTick
		while ((SysTick -> CTRL & 0x00010000) == 0);		//等待标志位置0
		SysTick->VAL = 0;						//设置当前值为0	
	}
}


/*!
 *  \brief	延时函数（秒） 
 */
void Delay_s(uint16_t s)
{
	while(s--)
	{
		Delay_ms(1000);
	}
}
