我创建了两个任务,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可以交替闪烁。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>