embeddedlibrary
reusable software modules for embedded systems
task.h
Go to the documentation of this file.
1 #ifndef _TASK_H_
2 #define _TASK_H_
3 
34 #include <stdint.h>
35 // make sure timing.h is included
36 #include "timing.h"
37 
40 typedef void (*task_fn_pointer_input_t)(void *);
42 typedef void (*task_fn_t)(void);
43 
52 #if 0
53 #define MAX_TASK_LENGTH 20
54 #endif
55 
66 #ifndef TASK_ROLL_TIME
67 #define TASK_ROLL_TIME (TIME_MAX-(uint32_t)10*24*60*60*1000) // roll 10 days before the timer would naturally roll
68 #endif
69 
74 void Task_Init(void);
75 
88 void SystemTick(void);
89 
106 void Task_Queue(task_fn_t fn, void * pointer);
107 
133 void Task_Schedule(task_fn_t fn, void * pointer,
134  tint_t delay, tint_t period);
135 
156 void Task_Remove(task_fn_t fn, void * pointer);
157 
171 void WaitMs(tint_t wait);
172 
178 uint8_t Task_IsScheduled(task_fn_t fn);
179 
182 #endif // _TASK_H_
void Task_Init(void)
Definition: task.c:50
void Task_Remove(task_fn_t fn, void *pointer)
Removes Task.
Definition: task.c:127
#define tint_t
Definition: timing.h:26
void Task_Queue(task_fn_t fn, void *pointer)
Adds a function to the task queue.
Definition: task.c:103
uint8_t Task_IsScheduled(task_fn_t fn)
Definition: task.c:180
void WaitMs(tint_t wait)
Definition: task.c:169
void Task_Schedule(task_fn_t fn, void *pointer, tint_t delay, tint_t period)
Adds task to be scheduled for execution.
Definition: task.c:114
void SystemTick(void)
Definition: task.c:68
void(* task_fn_t)(void)
default task type
Definition: task.h:42
void(* task_fn_pointer_input_t)(void *)
Definition: task.h:40