发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
为什么UCOSIII不会进行任务切换?
99 UCOSIII 代码
分享
void time_task(void * p_arg)
{
OS_ERR err;
color_bar_test();
while(1)
{         
        LED_POWER_On();
OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_PERIODIC,&err);//ÑÓʱ500ms
        LED_POWER_Off();
OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_PERIODIC,&err);//ÑÓʱ500ms
}
}
void Led_task(void * p_arg)
{
OS_ERR err;
while(1)
{
        LED_ALARM_On();
OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_PERIODIC,&err);//ÑÓʱ500ms
LED_ALARM_Off();
OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_PERIODIC,&err);//ÑÓʱ500ms
}
}
[/mw_shl_code][AppleScript] 纯文本查看 复制代码
OS_ERR err;CPU_SR_ALLOC();p_arg = p_arg;CPU_Init();#IF OS_CFG_STAT_TASK_EN > 0u   OSStatTaskCPUUsageInit(&err);  //ͳ¼ÆÈÎÎñ                #endif#ifdef CPU_CFG_INT_DIS_MEAS_EN//Èç¹ûʹÄÜÁ˲âÁ¿ÖжϹرÕʱ¼ä    CPU_IntDisMeasMaxCurReset();#endif#ifOS_CFG_SCHED_ROUND_ROBIN_EN  //µ±Ê¹ÓÃʱ¼äƬÂÖתµÄʱºò //ʹÄÜʱ¼äƬÂÖתµ÷¶È¹¦ÄÜ,ʱ¼äƬ³¤¶ÈΪ1¸öϵͳʱÖÓ½ÚÅÄ£¬¼È1*5=5msOSSchedRoundRobinCfg(DEF_ENABLED,1,&err);  #endif RCC_AHBPeriphclockCmd(RCC_AHBPeriph_CRC,ENABLE);WM_SetCreateFlags(WM_CF_MEMDEV);GUI_Init(); OS_CRITICAL_ENTER();//½øÈëÁÙ½çÇø//´´½¨TIMEÈÎÎñOSTaskCreate((OS_TCB * )&TimeTaskTCB, (CPU_CHAR* )"time task",                  (OS_TASK_PTR )Time_task,                  (void* )0,                 (OS_PRIO  )TIME_TASK_PRIO,                      (CPU_STK   * )&TIME_TASK_STK[0],                 (CPU_STK_SIZE)TIME_STK_SIZE/10,                 (CPU_STK_SIZE)TIME_STK_SIZE,                 (OS_MSG_QTY  )0,                 (OS_TICK  )0,                 (void   * )0,                 (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,                 (OS_ERR * )&err);//´´½¨LEDÈÎÎñOSTaskCreate((OS_TCB * )&LedTaskTCB, (CPU_CHAR* )"led task",                  (OS_TASK_PTR )Led_task,                  (void* )0,                 (OS_PRIO  )LED_TASK_PRIO,                      (CPU_STK   * )&LED_TASK_STK[0],                 (CPU_STK_SIZE)LED_STK_SIZE/10,                 (CPU_STK_SIZE)LED_STK_SIZE,                 (OS_MSG_QTY  )0,                 (OS_TICK  )0,                 (void   * )0,                 (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,                 (OS_ERR * )&err);  OS_TaskSuspend((OS_TCB*)&StartTaskTCB,&err);//¹ÒÆð¿ªÊ¼ÈÎÎñ OS_CRITICAL_EXIT();//Í˳öÁÙ½çÇø[AppleScript] 纯文本查看 复制代码
//ÓÅÏȼ¶·ÖÅä#define START_TASK_PRIO         3    #define TIME_TASK_PRIO          6    #define LED_TASK_PRIO            5  //ÈÎÎñÕ»·ÖÅä #define START_STK_SIZE           128 #define TIME_STK_SIZE           128 #define LED_STK_SIZE             64//ÈÎÎñº¯Êý void start_task(void *p_arg);void Time_task(void *p_arg);void Led_task(void *p_arg);
高优先级级任务会运行一次,ALARM闪烁一次,colorbartest显示,但是POWER_LED一直不运行。
0
2019-11-11 04:35:41   评论 分享淘帖 邀请回答

相关问题

3个回答
但是跑        GUIDEMO_Main(); 时候两个任务都能运行。。。。。。。
2019-11-11 12:17:28 评论

举报

[AppleScript] 纯文本查看 复制代码
//ʱ¼äÈÎÎñvoid Time_task(void * p_arg){OS_ERR err;while(1){ LED_ALARM_On();OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_DLY,&err);//ÑÓʱ500msLED_ALARM_Off();OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_DLY,&err);//ÑÓʱ500ms}}void Led_task(void * p_arg){OS_ERR err;while(1){LED_POWER_On();delay_ms(500);//ÑÓʱ500msLED_POWER_Off();delay_ms(500);//ÑÓʱ500ms}}
把任务函数中的延时像这样改就没有问题,两个灯都能闪烁了。。。不知道问题在哪
2019-11-11 12:33:44 评论

举报

只有小组成员才能发言,加入小组>>

182个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /6 下一条

快速回复 返回顶部 返回列表