hpw422移植新的sdk
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
/*!
|
||||
* \file hal_sleep.c
|
||||
*
|
||||
* \brief Target xc6xxx hal spi implementation
|
||||
*
|
||||
* \copyright Revised BSD License, see section \ref LICENSE.
|
||||
*
|
||||
* \code
|
||||
*
|
||||
* _ __ _ ________ _
|
||||
* | |/ /(_)___ / ____/ /_ (_)___
|
||||
* | // / __ \/ / / __ \/ / __ \
|
||||
* / |/ / / / / /___/ / / / / /_/ /
|
||||
* /_/|_/_/_/ /_/\____/_/ /_/_/ .___/
|
||||
* /_/
|
||||
* (C) 2022-2025 XinChip
|
||||
*
|
||||
* \endcode
|
||||
*
|
||||
* \author ( XinChip ) Alex-J
|
||||
*
|
||||
* \author ( XinChip )
|
||||
*/
|
||||
|
||||
/* ------------------------------------------------------------------------------------------------
|
||||
* Includes
|
||||
* ------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
#include "hal_timer.h"
|
||||
#include "OSAL_Clock.h"
|
||||
#include "xc_drv_timer.h"
|
||||
|
||||
uint32 sys_tick_cnt;
|
||||
|
||||
__RAM_CODE void timer1_callback(void *context)
|
||||
{
|
||||
sys_tick_cnt++;
|
||||
}
|
||||
|
||||
__RAM_CODE void osal_timer_init(void)
|
||||
{
|
||||
/* timer1 init */
|
||||
if (cpr_ctlapbclken_grctl__timer_pclk_en__getf() != ENABLE)
|
||||
cpr_ctlapbclken_grctl__timer_pclk_en__setf(ENABLE);
|
||||
|
||||
cpr_timer1_clk_ctl__timer_clksel__setf(TIMER_CLK_SRC_32M_DIV);
|
||||
cpr_timer1_clk_ctl__timer_clk0_div__setf(TIMER_DIV_CLK_16MHzOr16K);
|
||||
cpr_timer1_clk_ctl__timer_clk1_div__setf(TIMER_DIV_CLK_16MHzOr16K);
|
||||
|
||||
cpr_lp_ctl__timer_sysclk_sel__setf(ENABLE);
|
||||
timer_tcr__tes__setf(OSAL_TIMER, TIMER_TCR_TES_DISABLE);
|
||||
timer_tcr__tms__setf(OSAL_TIMER, TIMER_MODE_CYCLE);
|
||||
|
||||
/* value set */
|
||||
timer_tlc_set(OSAL_TIMER, 10000); //625us = 10000tick
|
||||
|
||||
/* timer1 start */
|
||||
NVIC_EnableIRQ(TIMER1_IRQn);
|
||||
NVIC_SetPriority(TIMER1_IRQn,1);
|
||||
timer_tcr__tim__setf(OSAL_TIMER, TIMER_TCR_TIM_DISABLE);
|
||||
timer_tcr__tes__setf(OSAL_TIMER, TIMER_TCR_TES_ENABLE);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
__RAM_CODE void osal_timer_start(void)
|
||||
{
|
||||
NVIC_EnableIRQ(TIMER1_IRQn);
|
||||
timer_tcr__tim__setf(OSAL_TIMER, TIMER_TCR_TIM_DISABLE);
|
||||
timer_tcr__tes__setf(OSAL_TIMER, TIMER_TCR_TES_ENABLE);
|
||||
}
|
||||
|
||||
__RAM_CODE void osal_timer_tick_set(uint32 tick)
|
||||
{
|
||||
sys_tick_cnt = tick;
|
||||
}
|
||||
|
||||
__RAM_CODE uint32 getMcuPrecisionCount(void)
|
||||
{
|
||||
return sys_tick_cnt;
|
||||
}
|
||||
Reference in New Issue
Block a user