- /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] This function execute delay function.
- * @param us Delay time. The Max value is 2^24 / CPU Clock(MHz). Ex:
- * 72MHz => 233016us, 50MHz => 335544us,
- 48MHz => 349525us, 28MHz => 699050us ...
- * [url=home.php?mod=space&uid=266161]@return[/url] None
- * [url=home.php?mod=space&uid=1543424]@Details[/url] Use the SysTick to generate the delay time and the unit is in us.
- * The SysTick clock source is from HCLK, i.e the same as system core clock.
- */
- __STATIC_INLINE void CLK_SysTickDelay(uint32_t us)
- {
- SysTick->LOAD = us * CyclesPerUs;
- SysTick->VAL = (0x00);
- SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_ENABLE_Msk;
- /* Waiting for down-count to zero */
- while((SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk) == 0);
-
- /* Disable SysTick counter */
- SysTick->CTRL = 0;
- }
|