/**
|
* @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;
|
}
|