#include "timing_delay.h"
|
|
void delay_init(void)
|
{
|
CLK_DeInit();
|
CLK_LSICmd(ENABLE);
|
CLK_HSICmd(ENABLE);
|
while(SET != CLK_GetFlagStatus(CLK_FLAG_HSIRDY));
|
|
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
|
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //HSI = 16M (1·ÖƵ)
|
|
TIM4_TimeBaseInit(TIM4_PRESCALER_2, 79);
|
TIM4_ClearFlag(TIM4_FLAG_UPDATE);
|
}
|
|
void TIMDelay_N10us(uint16_t Times)
|
{
|
TIM4_Cmd(ENABLE); //Æô¶¯¶¨Ê±Æ÷
|
while(Times--)
|
{
|
while(RESET == TIM4_GetFlagStatus(TIM4_FLAG_UPDATE));
|
TIM4_ClearFlag(TIM4_FLAG_UPDATE);
|
}
|
TIM4_Cmd(DISABLE); //¹Ø±Õ¶¨Ê±Æ÷
|
}
|
|
void TIMDelay_Nms(uint16_t Times)
|
{
|
while(Times--)
|
{
|
TIMDelay_N10us(100);
|
}
|
}
|
|
void TIMDelay_Ns(uint16_t Times)
|
{
|
while(Times--)
|
{
|
TIMDelay_Nms(1000);
|
}
|
}
|
|