~~NOTOC~~
===== tn_task_change_priority() =====
{{tnkernel:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} {{tnkernel:ref:attr_call_ct_sw.png|Может привести к переключению контекста}}
Функция изменяет натуральный (заданный при создании) приоритет задачи.
Функция может изменять приоритет как текущей, так и любой другой задачи, которая находится в состоянии отличном от //DORMANT//.
Если после изменения приоритета текущей задачи она становится менее приоритетной чем одна из задач, готовая к выполнению, то запускается более приоритетная задача.
Если после изменения приоритета задачи готовой к выполнению, она становится наиболее приоритетной, то она запускается - становится активной.
Изменение приоритета задачи, находящейся в состоянии останова или ожидания не меняет состояния задачи.
**Вызов:**
TN_RETVAL tn_task_change_priority (TN_TCB *task, TN_UWORD new_priority);
**Разрешен вызов:** \\
В контексте задачи
**Параметры функции:**
; ''task'' : указатель на TCB задачи, изменяющей приоритет. Задача может изменить свой приоритет.
; ''new_priority'' : новый приоритет задачи от 1 до 14 для 16-битных контроллеров и от 1 до 30 - для 32-битных контроллеров. Если значение параметра равно 0, то задача восстанавливает базовый приоритет, назначенный при создании.
**Возвращаемые значения:**
; ''TERR_WRONG_PARAM'' : некорректное значение параметра (__замечание:__ данный код возврата возможен только в случае использования сервисов с проверкой параметров)
; ''TERR_NOEXS'' : попытка изменения приоритета объекта, не являющегося задачей
; ''TERR_WCONTEXT'' : попытка изменения приоритета задачи в прерывании или в пользовательской критической секции : попытка изменения приоритета задачи, находящейся в состоянии //DORMANT//
; ''TERR_NO_ERR'' : успешное выполнение
\\
**Пример вызова:**
tn_task_change_priority(&myTask, 10);
\\
----
[[tnkernel:ref:task:intro#сервисы_управления_задачами|К списку сервисов]]