~~NOTOC~~
===== tn_task_iactivate() =====

{{tnkernel:ref:attr_call_int.png|Разрешен вызов только в прерывании}} {{tnkernel:ref:attr_call_ct_sw.png|Может привести к переключению контекста}}

Функция активизирует задачу из прерывания - переводит задачу ''task'' из состояния //DORMANT// в состояние //READY//. 

**Вызов:**
<code>
TN_RETVAL tn_task_iactivate(TN_TCB *task);
</code>

**Разрешен вызов:** \\ 

В прерывании

**Параметры функции:**

  ; ''task'' : указатель на TCB активизируемой задачи


\\ 
**Возвращаемые значения:**  

  ; ''TERR_WRONG_PARAM'' : некорректное значение параметра (__замечание:__ данный код возврата возможен только в случае использования сервисов с проверкой параметров)
  ; ''TERR_NOEXS'' : попытка активации объекта, не являющегося задачей (__замечание:__ данный код возврата возможен только в случае использования сервисов с проверкой параметров)
  ; ''TERR_WCONTEXT'' : попытка активации задачи в контексте задачи или в пользовательской критической секции
  ; ''TERR_OVERFLOW'' : активируемая задача находится в состоянии, отличном от //DORMANT//
  ; ''TERR_NO_ERR'' : успешное выполнение

\\ 
**Пример вызова:**
<code cpp>
extern TN_TCB tcb_Task1  TN_DATA;

tn_sys_interrupt (_T3Interrupt)        /* прерывание от таймера */
{
    IFS0bits.T2IF = 0;                 /* сброс флага прерывания */
    tn_task_iactivate(&tcb_Task1);     /* активация задачи tcb_Task1 */
}
</code>
\\ 

----
[[tnkernel:ref:task:intro#сервисы_управления_задачами|К списку сервисов]]