42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
|
|
#include "rtthread.h"
|
||
|
|
|
||
|
|
void rt_timer_init(rt_timer_t timer, const char *name, void (*timeout)(void *parameter), void *parameter, rt_tick_t time, rt_uint8_t flag)
|
||
|
|
{
|
||
|
|
uint8 mode = flag & RT_TIMER_FLAG_PERIODIC ? OS_TIMER_MODE_PERIODIC : OS_TIMER_MODE_ONCE;
|
||
|
|
os_timer_init(timer, timeout, mode, parameter);
|
||
|
|
timer->interval = time;
|
||
|
|
}
|
||
|
|
|
||
|
|
rt_err_t rt_timer_detach(rt_timer_t timer)
|
||
|
|
{
|
||
|
|
return os_timer_del(timer);
|
||
|
|
}
|
||
|
|
|
||
|
|
rt_timer_t rt_timer_create(const char *name, void (*timeout)(void *parameter), void *parameter, rt_tick_t time, rt_uint8_t flag)
|
||
|
|
{
|
||
|
|
uint8 mode = flag & RT_TIMER_FLAG_PERIODIC ? OS_TIMER_MODE_PERIODIC : OS_TIMER_MODE_ONCE;
|
||
|
|
struct rt_timer *timer = os_malloc(sizeof(struct rt_timer));
|
||
|
|
if (timer) {
|
||
|
|
os_timer_init(timer, timeout, mode, parameter);
|
||
|
|
timer->interval = time;
|
||
|
|
}
|
||
|
|
return timer;
|
||
|
|
}
|
||
|
|
|
||
|
|
rt_err_t rt_timer_delete(rt_timer_t timer)
|
||
|
|
{
|
||
|
|
return os_timer_del(timer);
|
||
|
|
}
|
||
|
|
|
||
|
|
rt_err_t rt_timer_start(rt_timer_t timer)
|
||
|
|
{
|
||
|
|
return os_timer_start(timer, timer->interval);
|
||
|
|
}
|
||
|
|
|
||
|
|
rt_err_t rt_timer_stop(rt_timer_t timer)
|
||
|
|
{
|
||
|
|
return os_timer_stop(timer);
|
||
|
|
}
|
||
|
|
|
||
|
|
|