/** * @file os_clock.c * @author Ethan.Tao (tzj0429@163.com) * @brief * @version 0.1 * @date 2021-12-16 * * @copyright Copyright (c) 2021 Äþ²¨ÕýÀÊÆû³µÁ㲿¼þÓÐÏÞ¹«Ë¾ * */ #include "XL6600.h" #include "xl_ics.h" #include "xl_osc.h" #include "xl_nvic.h" #include "system_xl6600.h" #include "os_task.h" /** * @param SysTick ʹÄܶ¨Òå */ #define SysTick_CTRL_ENABLE_Pos 0U /*!< SysTick CTRL: ENABLE Position */ //#define SysTick_CTRL_ENABLE_Msk (1UL) /*<< SysTick_CTRL_ENABLE_Pos*/ /*!< SysTick CTRL: ENABLE Mask */ /** * @param SysTick ÖжÏʹÄܶ¨Òå */ #define SysTick_CTRL_TICKINT_Pos 1U /*!< SysTick CTRL: TICKINT Position */ #define SysTick_CTRL_TICKINT_Msk (1UL << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ void Ostick_config(void) { uint32_t reload; /* setup systick timer for 1000Hz interrupts */ SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); reload = Get_SystemCoreClock() / 1000; //ÿÃëÖӵļÆÊý´ÎÊý µ¥Î»Îªms SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk; //¿ªÆôSYSTICKÖÐ¶Ï SysTick->LOAD = reload; //ÿ1msÃëÖжÏÒ»´Î SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; //¿ªÆôSYSTICK } void Ostick_ReInit(void) { SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk; //¿ªÆôSYSTICKÖÐ¶Ï SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; //¹Ø±ÕSYSTICK } /** * @brief SysTickÖжϺ¯Êý * @param None * @return None */ void SysTick_Handler(void) { OS_TickFlag = 1; }