中级会员
 
- 积分
- 436
- 金钱
- 436
- 注册时间
- 2015-5-28
- 在线时间
- 144 小时
|

楼主 |
发表于 2018-2-4 20:52:23
|
显示全部楼层
[mw_shl_code=c,true]typedef struct Task
{
TaskRole Role;
void (*RunHook)(struct Task *);
u32 RunItvMs; //SYSTICK_ITV_MS 的整数倍
u32 RunItvPass;
bool RunTrigged;
//用StatePtr指针可省去没有状态的Task的内存占用,和适应不同的状态数据结构
void (*Init)(struct Task *); //初始化StatePtr等
void * StatePtr; //0|2|3|4需要ReadMeterState(sizeof()=76B) MinTaskSizeof()=30B * 7(MaxTasks) -> 512B
}Task;
Task gTasks[] =
{
{
.Role = TaskRole_PortAck,
.RunHook = PortsAckHandle,
.RunItvMs = 100,
.Init = NULL,
},
{
.Role = TaskRole_PortRead,
.RunHook = PortsTimingRead,
.RunItvMs = 1000,
.Init = NULL,
},
}[/mw_shl_code] |
|