这位道友,我一直有一个疑问。之前我也是有和楼主一样的问题。我之前是没有用原子的delay。sys。usart。这三个文件。我直接移植的官方例程,先用系统点了个灯。成功后,让灯闪烁我用到了延时,起初我用的是系统提供的延时vTaskDelay(),灯也开始拿着这个延时开始闪烁了。直到后来,学到后面的系统中断测试实验。
while(1)
{
printf("¹Ø±ÕÖжÏ.............rn");
portDISABLE_INTERRUPTS();
delay_xms(5000);
printf("´ò¿ªÖжÏ.............rn");
portENABLE_INTERRUPTS();
delay_xms(5000);
}
这个就是任务具体实现;程序中延时用vTaskDelay()函数不行。只能用原子的delay_xms()
我比对了一下区别。说是vTaskDelay会导致任务调度。我不明白怎么回事。或者说这两个延时函数到底什么时候用vTaskDelay(),什么时候用delay_xms()。道友能帮我解惑嘛?
这位道友,我一直有一个疑问。之前我也是有和楼主一样的问题。我之前是没有用原子的delay。sys。usart。这三个文件。我直接移植的官方例程,先用系统点了个灯。成功后,让灯闪烁我用到了延时,起初我用的是系统提供的延时vTaskDelay(),灯也开始拿着这个延时开始闪烁了。直到后来,学到后面的系统中断测试实验。
while(1)
{
printf("¹Ø±ÕÖжÏ.............rn");
portDISABLE_INTERRUPTS();
delay_xms(5000);
printf("´ò¿ªÖжÏ.............rn");
portENABLE_INTERRUPTS();
delay_xms(5000);
}
这个就是任务具体实现;程序中延时用vTaskDelay()函数不行。只能用原子的delay_xms()
我比对了一下区别。说是vTaskDelay会导致任务调度。我不明白怎么回事。或者说这两个延时函数到底什么时候用vTaskDelay(),什么时候用delay_xms()。道友能帮我解惑嘛?
举报