Available Languages?:

tn_event_iset()

Функция предназначена для установки битов в битовой маске флага evf в прерывании. Биты устанавливаются по логическому ИЛИ с параметром-маской pattern.

После того как битовая маска флага обновлена, проверяются все задачи, ожидающие флаг. Если условие для запуска одной из задачи соотвествует битовой маске, задача переводится в состояние готовых к выполнению.

Если флаг имеет атрибут TN_EVENT_ATTR_MULTI, то в состояние готовых к выполнению переводятся все задачи, условие для запуска которых соответствует битовой маске.

Если флаг имеет атрибут TN_EVENT_ATTR_CLR, то битовая маска флага сбрасывается.

Вызов:

TN_RETVAL tn_event_iset (TN_EVENT *evf, TN_UWORD pattern);

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

В прерывании

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

evf
указатель на объект типа флаг
pattern
устанавливаемые биты в битовой маске флага. Например, если битовая маска флага до вызова сервиса была равно 0b0011001101010101, а параметр pattern равен 0b1100000000000000, то битовая маска флага станет равна 0b1111001101010101


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

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


Пример вызова:

extern TN_EVENT event;
 
tn_sys_interrupt (_T2Interrupt)        /* прерывание от таймера */
{
    IFS0bits.T2IF = 0;                 /* сброс флага прерывания */
    tn_event_iset(&event, 0x8000);
}



К списку сервисов

 
tnkernel/ref/event/tn_event_iset.txt · Последние изменения: 21.07.2008 00:40 От admin
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki