epm/User/lib/inc/task.h

28 lines
632 B
C

#ifndef __TASK_RUN_H
#define __TASK_RUN_H
#include <stdint.h>
enum task_index {
TASK_INDEX_KEY = 0,
TASK_INDEX_BOOT,
TASK_INDEX_RS485_MONITOR,
TASK_INDEX_RS485_MODBUS,
TASK_INDEX_MAX
};
struct task_pcb {
uint8_t enable;
uint32_t tick_timeout;
uint32_t period;
uint32_t event;
int (*task_entry)(struct task_pcb *task);
};
void task_init(enum task_index index, int (*task_entry)(struct task_pcb *task), uint32_t period);
void task_start(enum task_index index);
void task_stop(enum task_index index);
int task_event_send(enum task_index index, uint32_t set);
void task_process(void);
#endif