Перевод может содержать ошибки. Читайте первоисточник: FreeRTOS Task Control API Functions - vTaskSuspend()
Назад: [vTaskPrioritySet()] | Вверх: [ИПП: Управление задачами] | Вперёд: [vTaskResume()] |
Функция объявляется в файле task.h
void vTaskSuspend( TaskHandle_t xTaskToSuspend );
Настройка INCLUDE_vTaskSuspend в файле FreeRTOSConfig.h должна быть установлена в 1. Без этого функция недоступна.
Приостановка выполнения любой задачи. Приостановленная задача никогда не получает процессорного времени для работы, независимо от её приоритета.
Параметры:
xTaskToSuspend | Дескриптор приостанавливаемой задачи. Передача NULL в качестве аргумента приводит к приостановке вызывающей задачи. |
Возвращаемое значение:
Отсутствует.
Пример использования:
void vAFunction( void )
{
TaskHandle_t xHandle;
/* Создаём задачу, сохраняем её дескриптор. */
xTaskCreate( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );
/* ... */
// Use the handle to suspend the created task.
/* Используем дескриптор для приостановки созданной задачи. */
vTaskSuspend( xHandle );
/* ... */
/* Созданная задача не будет выполнятся до тех пор, пока другая задача не
выполнит вызов vTaskResume( xHandle ) */
/* ... */
/* Приостанавливаем сами себя. */
vTaskSuspend( NULL );
/* Мы не сможем попасть сюда до тех пор, пока другая задача
не вызовет vTaskResume() с дескриптором этой задачи в качестве параметра */
}
.