====== OSA : OS_Task_SetPriority ======
**OS_Task_SetPriority (OST_TASK_POINTER tp, char priority)**\\
=== ===
Изменить приоритет задачи.
Перед вызовом этого сервиса нужно быть уверенным в том, что //tp// инициализирован сервисом ##[[osa:ref:allservices:OS_Task_GetCur|OS_Task_GetCur]]##.
В качестве //tp// можно использовать макрос **//this task//** или сервис ##[[osa:ref:allservices:OS_Task_GetCur|OS_Task_GetCur]]##().
=== Разрешен вызов: ===
Только из задачи
=== Параметры функции: ===
{| class = "fpl"
|-
|//''tp''//
|Указатель на дескиптор задачи (##[[osa:ref:description:data_types#OST_TASK_POINTER|OST_TASK_POINTER]]##)
|-
|//''priority''//
|Приоритет. Может быть от 0 (высший) до 7 (низший)
|}
=== Возвращаемое значение: ===
Нет
=== Пример вызова: ===
void Task (void)
{
static char temp;
for (;;) {
/*...*/
temp = OS_Task_GetPriority(this_task);
OS_Task_SetPriority(this_task, 0); // Устанавливаем задаче высший приоритет
// Здесь выполняем критические ко времени операции
/*...*/
OS_Task_SetPriority(this_task, temp); // Восстанавливаем старый приоритет
/*...*/
}
}
=== Old style name ===
**OS_SetTaskPriority**\\
=== См. также ===
* [[osa:ref:allservices:OS_Task_Create|OS_Task_Create]]
* [[osa:ref:allservices:OS_Task_Replace|OS_Task_Replace]]
* [[osa:ref:allservices:OS_Task_Delete|OS_Task_Delete]]
* [[osa:ref:allservices:OS_Task_Define|OS_Task_Define]]
* [[osa:ref:allservices:OS_Task_GetCur|OS_Task_GetCur]]
* [[osa:ref:allservices:OS_Task_GetCreated|OS_Task_GetCreated]]
* [[osa:ref:allservices:OS_Task_Pause|OS_Task_Pause]]
* [[osa:ref:allservices:OS_Task_Continue|OS_Task_Continue]]
* [[osa:ref:allservices:OS_Task_IsPaused|OS_Task_IsPaused]]
* [[osa:ref:allservices:OS_Task_GetPriority|OS_Task_GetPriority]]
* [[osa:ref:allservices:OS_Task_SetPriority|OS_Task_SetPriority]]
----
* [[osa:ref:services:alphabetical|Алфавитный указатель]]
* [[osa:ref:services:brieflist|Все сервисы]]
~~UP~~