diff options
author | Paul Selkirk <paul@psgd.org> | 2017-04-29 15:44:30 -0400 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2017-04-29 15:44:30 -0400 |
commit | e234cacf79a496d20a113d1141e7607089fc6e8e (patch) | |
tree | e1f9e743a86d65bc485c0bf43472ea3c478e5d25 | |
parent | f77ba50cbbc119baa9f90a092407d06caa56e9e2 (diff) |
Add task_delay.
-rw-r--r-- | task.c | 10 | ||||
-rw-r--r-- | task.h | 4 |
2 files changed, 13 insertions, 1 deletions
@@ -316,3 +316,13 @@ tcb_t *task_iterate(tcb_t *t) return t->next; } + +/* Delay a number of 1ms ticks. + */ +void task_delay(uint32_t delay) +{ + uint32_t tickstart = HAL_GetTick(); + + while ((HAL_GetTick() - tickstart) < delay) + task_yield(); +} @@ -49,6 +49,8 @@ typedef void (*funcp_t)(void); extern tcb_t *task_add(char *name, funcp_t func, void *cookie, void *stack, size_t stack_len); +extern void task_set_idle_hook(funcp_t func); + extern void task_yield(void); extern void task_sleep(void); extern void task_wake(tcb_t *t); @@ -63,6 +65,6 @@ extern size_t task_get_stack_highwater(tcb_t *t); extern tcb_t *task_iterate(tcb_t *t); -extern void task_set_idle_hook(funcp_t func); +extern void task_delay(uint32_t delay); #endif /* _TASK_H_ */ |