Функция предназначена для пробуждения приостановленной с помощью функции tn_task_sleep() задачи в прерывании. При этом задача продолжит выполнение с места возврата из функции tn_task_sleep() без ошибок.
Если функция пытается пробудить задачу, которая еще не приостановлена, счетчик запросов на пробуждение будет увеличен на 1.
Вызов:
TN_RETVAL tn_task_wakeup (TN_TCB *task);
Разрешен вызов:
В прерывании
Параметры функции:
task
Возвращаемые значения:
TERR_WRONG_PARAM
TERR_NOEXS
TERR_WCONTEXT
TERR_OVERFLOW
TERR_NO_ERR
Пример вызова:
extern TN_TCB tcb_Task1 TN_DATA; tn_sys_interrupt (_T3Interrupt) /* прерывание от таймера */ { IFS0bits.T2IF = 0; /* сброс флага прерывания */ tn_task_iwakeup(&tcb_Task1); /* активация задачи tcb_Task1 */ }