OS_Task_Replace (priority, TaskName)
Заменить текущую задачу на новую. Задача переводится в состояние "не создана", дескриптор текущей задачи освобождается, а на ее место в дескриптор заносится новая задача, ее приоритет и флаги состояния. Изначально новая задача находится в состоянии готовности.
Только из задачи
priority |
Приоритет. Может быть от 0 (высший) до 7 (низший) |
TaskName |
Имя функции, которая будет использоваться как задача. |
Нет
void Task2 (void) { for (;;) { OS_Yield(); /*...*/ } } void Task1 (void) { char temp; for (;;) { /*...*/ // Удаляем текущую задачу и на ее место создаем Task2() с таким же приоритетом temp = OS_Task_GetPriority(); OS_Task_Replace (temp, Task2); /*...*/ } }
OS_ReplaceTask