自定义的任务有两种:
1.void led1_task(void *p_arg)
{
OS_ERR err;
p_arg = p_arg;
while(1)
{
LED1=~LED1;
OSTimeDlyHMSM(0,0,2,0,OS_OPT_TIME_HMSM_STRICT,&err);
}
}
2.void can_task(void *p_arg)
{
OS_ERR err;
p_arg = p_arg;
while(1)
{
OSSemPend(&CAN1RXEND_SEM,0,OS_OPT_PEND_BLOCKING,0,&err); //ÇëÇóDÅoÅá¿
move_decode();
OSTimeDlyHMSM(0,0,0,200,OS_OPT_TIME_PERIODIC,&err); //Ñóê±10ms
}
}
这样的任务十多个,如上面两个任务。can接收中断中有数据收到时, 执行任务can_task(void *p_arg)。通过jlink仿真,程序运行一段时间就停在空任务中。