#ifndef _TASK_TYPES_H #define _TASK_TYPES_H #include "task_def.h" // macro define #include "pt_header.h" #define TASK_WITH_PT 1 #define TASK_WITH_NAME 1 #define TASK_NAME_LEN 16 typedef enum { TASK_ID(TaskTimer), }Task_id; typedef enum { TASK_MODE_ONCE, TASK_MODE_PERIOD }TASK_MODE; typedef enum { TIMER_MODE_TIMER = 0, TIMER_MODE_ONCEROUTINE, TIMER_MODE_CYCROUTINE }TIMER_MODE; #if(TASK_WITH_PT) typedef int8_t (*PtTaskProc)(struct pt* pt1); #else typedef int8_t (*PtTaskProc)(void); #endif typedef void (*TimerProc)(void* Param1); typedef struct mytask { int8_t cActive; // int8_t cMode; int8_t cTaskID; // int8_t reserve; // #if(TASK_WITH_NAME) int8_t cTaskName[TASK_NAME_LEN]; #endif int32_t lLastTime; int32_t lPeriod; // PtTaskProc taskproc; // struct pt pt1; }TASK_DATA,*PTASK_DATA; // define timer data struct typedef struct mytimer { int8_t cUse; int8_t* TimerID; int8_t cMode; // timer work mode int8_t reserve1; int32_t lPeriod; // timer period, unit=10ms. int32_t lLastTime; // timer count for reload TimerProc timerProc; // user's timer routine void *Param1; }TIMER_DATA,*PTIMER_DATA; #endif