This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS:任务、计时器

Guru**** 2557070 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/671107/rtos-task-timer

工具/软件:TI-RTOS

你(们)好

我有两个任务函数、比如:

空任务1 (UARg arg0、UARg arg1)

Semaphore_pend (semHandle、BIOS_wait_forever);

//做一些事情

Task_sleep (1sek);

Semaphore_post (semHandle);

空任务2 (UARg arg0、UARg arg1)

Semaphore_pend (semHandle、BIOS_wait_forever);

//做一些事情

Task_sleep (1sek);

Semaphore_post (semHandle);

问题是当任务1正在运行并到达 Task_sleep()点时,任务2开始运行。

我希望任务在移动到任务2之前等待1sek

我该怎么做?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Abbas,

    在这两个任务运行之前、信标的计数是多少? 例如、信号量创建中的计数值是多少。 此外、它是二进制信号量还是计数信号量。

    如果计数为1 (我假设任务1首先运行、因为它具有更高的优先级、或者如果它们具有相同的优先级、则先创建任务1)、则任务1 Semaphore_pend 不会阻止并将计数递减到0。 然后它将休眠1sek。 在此期间、空闲任务将运行。 1sek 后、信标被布置、任务2应该运行。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。。。 它现在正在工作:)