/* * @Description: * @Version: 1.0 * @Autor: lzc * @Date: 2022-11-02 08:47:08 * @LastEditors: lzc * @LastEditTime: 2023-07-07 10:14:53 */ #ifndef _TIMER_H #define _TIMER_H #include "sys.h" #define SysTick_CLK_10ms 1680000 #define SysTick_IRQ_ENABLE() \ SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; \ SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk #define SysTick_IRQ_DISABLE() \ SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; \ SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk typedef struct { uint32_t CountNum; /* 设置滴答定时器计时次数 (用于定时器增加计数)*/ uint32_t OverTimeVal; /* 超时值(超过这个值则表示达到预期定时值)*/ } TimingVarTypeDef; /* 计时变量类型 */ void key_optical(void); void TIM3_Callback(void); void TIM2_Int_Init(u16 arr, u16 psc); void TIM3_Int_Init(u16 arr, u16 psc); void TIM4_Int_Init(u16 arr, u16 psc); void TIM5_Int_Init(u16 arr, u16 psc); void TIM7_Int_Init(u16 arr, u16 psc); void RCC_Configuration(char SysClockFrq); extern TimingVarTypeDef Time; extern uint32_t TimeupTimes; extern uint16_t TIM3_CountVal; extern uint32_t Get_SysTick_Time(void); extern void SysTick_Time_Start(void); extern void SysTick_Time_Stop(void); extern uint32_t SysTick_Init(void); extern void Set_SysTick_OverTimeVal(uint32_t Val); #endif