This repository has been archived on 2025-04-28. You can view files and clone it, but cannot push or open issues or pull requests.
CMS3in1/1.Cabin/1.Software/STM32_AD7606/Drivers/BSP/TIMER/gtim.c

50 lines
1.7 KiB
C
Raw Normal View History

#include "./BSP/TIMER/gtim.h"
#include "./BSP/AD7606/AD7606.h"
/* <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD><C3BE><EFBFBD> <20><><EFBFBD><EFBFBD> */
TIM_HandleTypeDef g_timx_handle; /* <20><>ʱ<EFBFBD><CAB1>x<EFBFBD><78><EFBFBD><EFBFBD> */
/**
* @brief ͨ<EFBFBD>ö<EFBFBD>ʱ<EFBFBD><EFBFBD>TIMX<EFBFBD><EFBFBD>ʱ<EFBFBD>жϳ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @note
* ͨ<EFBFBD>ö<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APB1,<EFBFBD><EFBFBD>PPRE1 <EFBFBD><EFBFBD> 2<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
* ͨ<EFBFBD>ö<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ΪAPB1ʱ<EFBFBD>ӵ<EFBFBD>2<EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>APB1Ϊ42M, <EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ʱ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> = 84Mhz
* <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Tout = ((arr + 1) * (psc + 1)) / Ft us.
* Ft=<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD>λ:Mhz
*
* @param arr: <EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD>װֵ
* @param psc: Ԥ<EFBFBD><EFBFBD>Ƶϵ<EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
void gtim_timx_int_init(uint16_t arr, uint16_t psc)
{
GTIM_TIMX_INT_CLK_ENABLE(); /* ʹ<><CAB9>TIMxʱ<78><CAB1> */
g_timx_handle.Instance = GTIM_TIMX_INT; /* ͨ<>ö<EFBFBD>ʱ<EFBFBD><CAB1>x */
g_timx_handle.Init.Prescaler = psc; /* Ԥ<><D4A4>Ƶϵ<C6B5><CFB5> */
g_timx_handle.Init.CounterMode = TIM_COUNTERMODE_UP; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ */
g_timx_handle.Init.Period = arr; /* <20>Զ<EFBFBD>װ<EFBFBD><D7B0>ֵ */
HAL_TIM_Base_Init(&g_timx_handle);
HAL_NVIC_SetPriority(GTIM_TIMX_INT_IRQn, 3, 3); /* <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>ȼ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>3 */
HAL_NVIC_EnableIRQ(GTIM_TIMX_INT_IRQn); /* <20><><EFBFBD><EFBFBD>ITMx<4D>ж<EFBFBD> */
HAL_TIM_Base_Start_IT(&g_timx_handle); /* ʹ<>ܶ<EFBFBD>ʱ<EFBFBD><CAB1>x<EFBFBD>Ͷ<EFBFBD>ʱ<EFBFBD><CAB1>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> */
}
/**
* @brief <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>жϷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param <EFBFBD><EFBFBD>
* @retval <EFBFBD><EFBFBD>
*/
void GTIM_TIMX_INT_IRQHandler(void)
{
/* <20><><EFBFBD>´<EFBFBD><C2B4><EFBFBD>û<EFBFBD><C3BB>ʹ<EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1>HAL<41><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ͨ<EFBFBD><CDA8><EFBFBD>ж<EFBFBD><D0B6>жϱ<D0B6>־λ<D6BE>ķ<EFBFBD>ʽ */
if(__HAL_TIM_GET_FLAG(&g_timx_handle, TIM_FLAG_UPDATE) != RESET)
{
AD7606_ISR(); //<2F><><EFBFBD><EFBFBD>AD7606<30><36><EFBFBD>в<EFBFBD><D0B2><EFBFBD>
__HAL_TIM_CLEAR_IT(&g_timx_handle, TIM_IT_UPDATE); /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־λ */
}
}