ucosiii中关于函数OSTimeDlyHMSM的问题。

2019-07-20 14:47发布

我创建了两个任务,task1,task2,两个任务重,主要的代码如下:
[mw_shl_code=applescript,true]    while (DEF_TRUE) {                                          /* Task body, always written as an infinite loop.       */
       BSP_LED_Off(1u);
       BSP_LED_Off(0u);
       OSTimeDlyHMSM(0u, 0u, 1u, 500u,
                      OS_OPT_TIME_HMSM_STRICT,
                      &err);   
}[/mw_shl_code]

[mw_shl_code=applescript,true] while (DEF_TRUE){
       BSP_LED_On(1u);
       BSP_LED_On(0u);
              OSTimeDlyHMSM(0u, 0u, 1u, 500u,
                      OS_OPT_TIME_HMSM_STRICT,
                      &err);
    }[/mw_shl_code]

发现阿波罗上的DS0和DS1常量,但是我用单步调试,在两个任务的led灯操作的地方设置断点,可以发现程序的确在两个任务之间发生着切换,这是什么原因呢?难道是       OSTimeDlyHMSM(0u, 0u, 1u, 500u,
                      OS_OPT_TIME_HMSM_STRICT,
                      &err); 延时在任务切换过程中出现了什么问题,
如果我适用函数       OSTimeDlyHMSM(0u, 0u, 1u, 500u,
                      OS_OPT_TIME_HMSM_STRICT,
                      &err); 在一个任务中,
[mw_shl_code=applescript,true]    while (DEF_TRUE) {                                          /* Task body, always written as an infinite loop.       */
       BSP_LED_Off(1u);
       BSP_LED_Off(0u);
       OSTimeDlyHMSM(0u, 0u, 1u, 500u,
                      OS_OPT_TIME_HMSM_STRICT,
                      &err);   
       BSP_LED_On(1u);
       BSP_LED_On(0u);
              OSTimeDlyHMSM(0u, 0u, 1u, 500u,
                      OS_OPT_TIME_HMSM_STRICT,
                      &err);
    }[/mw_shl_code]
可以发现DS0和DS1可以交替闪烁。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。