* @brief This function will create a timer * * @param name is the name of timer * * @param timeout is the timeout function * * @param parameter is the parameter of timeout function * * @param time is timeout ticks of the timer * * NOTE: The max timeout tick should be no more than (RT_TICK_MAX/2 - 1). * * @param flag is the flag of timer. Timer will invoke the timeout function ac
| 343 | * @return the created timer object |
| 344 | */ |
| 345 | rt_timer_t rt_timer_create(const char *name, |
| 346 | void (*timeout)(void *parameter), |
| 347 | void *parameter, |
| 348 | rt_tick_t time, |
| 349 | rt_uint8_t flag) |
| 350 | { |
| 351 | struct rt_timer *timer; |
| 352 | |
| 353 | /* parameter check */ |
| 354 | RT_ASSERT(timeout != RT_NULL); |
| 355 | RT_ASSERT(time < RT_TICK_MAX / 2); |
| 356 | |
| 357 | /* allocate a object */ |
| 358 | timer = (struct rt_timer *)rt_object_allocate(RT_Object_Class_Timer, name); |
| 359 | if (timer == RT_NULL) |
| 360 | { |
| 361 | return RT_NULL; |
| 362 | } |
| 363 | |
| 364 | _timer_init(timer, timeout, parameter, time, flag); |
| 365 | |
| 366 | return timer; |
| 367 | } |
| 368 | RTM_EXPORT(rt_timer_create); |
| 369 | |
| 370 | /** |