Files
checker_slave/source/soft/mymisc.c
2023-06-10 11:52:00 +08:00

46 lines
745 B
C

#include "rtthread.h"
#include "stdlib.h"
#include "stdint.h"
#include "stdio.h"
typedef struct{
void (*later_fun)(void *t);
void *t;
rt_timer_t timer;
}later_def;
static void later_fun_exe(void *t)
{
later_def *l=t;
rt_timer_delete(l->timer);
if(l->later_fun){
l->later_fun(l->t);
}
free(l);
}
// 延迟一段时间调用函数
void later_execute(void (*fun)(void *t),void *t,int ms)
{
static uint16_t count;
char s1[16]={0};
sprintf(s1,"later_t#%d",count);
later_def *l=calloc(1,sizeof(later_def));
l->later_fun=fun;
l->t=t;
l->timer=rt_timer_create(s1,later_fun_exe,l,
rt_tick_from_millisecond(ms),
RT_TIMER_FLAG_ONE_SHOT|RT_TIMER_FLAG_SOFT_TIMER);
rt_timer_start(l->timer);
count++;
}