论坛元老
 
- 积分
- 5259
- 金钱
- 5259
- 注册时间
- 2012-8-25
- 在线时间
- 1025 小时
|
发表于 2023-5-24 10:38:24
|
显示全部楼层
- extern int HAL_GetTick();
- #define HAL_GetTick_int HAL_GetTick
- typedef enum
- {
- TIMER_RUN,
- TIMER_PUASE,
- TIMER_OUT,
- }E_timer_run_t;
- typedef union
- {
- E_timer_run_t E_timer_run_s;
- uint32_t data_32;
- }E_timer_run_u_t;
- typedef struct
- {
- int msec;
- }timer_msdelay_t;
- void timer_ms_init(timer_msdelay_t * timer_ms_p,int ms);
- E_timer_run_t timer_ms_run(timer_msdelay_t * timer_ms_p);
- void ms_delay(int ms);
- typedef struct
- {
- int msec;
- int cycle;
- }timer_cycle_t;
- void timer_cycle_init(timer_cycle_t * timer_cycle_p,int ms);
- E_timer_run_t timer_cycle_run(timer_cycle_t * timer_cycle_p);
- void timer_ms_init( timer_msdelay_t* timer_ms_p, int ms )
- {
- timer_ms_p->msec = HAL_GetTick_int() + ms;
- }
- E_timer_run_t timer_ms_run( timer_msdelay_t* timer_ms_p )
- {
- return ( timer_ms_p->msec - HAL_GetTick_int() <= 0 ) ? TIMER_OUT : TIMER_RUN;
- }
- void ms_delay(int ms)
- {
- timer_msdelay_t timer_msdelay_s;
- timer_ms_init(&timer_msdelay_s,ms);
- while(TIMER_OUT!= timer_ms_run(&timer_msdelay_s))
- {
-
- }
-
- }
- void timer_cycle_init( timer_cycle_t* timer_cycle_p, int ms )
- {
- timer_cycle_p->cycle = ms;
- timer_cycle_p->msec = HAL_GetTick_int() + ms;
- }
- E_timer_run_t timer_cycle_run( timer_cycle_t* timer_cycle_p )
- {
- E_timer_run_t ret = TIMER_RUN;
- if( timer_cycle_p->msec - HAL_GetTick_int() <= 0 )
- {
- timer_cycle_p->msec += timer_cycle_p->cycle ;
- ret = TIMER_OUT;
- }
- return ret;
- }
复制代码 |
|