tn_event_iclear()

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

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

Вызов:

TN_RETVAL tn_event_iclear (TN_EVENT *evf, TN_UWORD pattern);

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

В прерывании

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

evf
указатель на объект типа флаг
pattern
сбрасываемые биты в битовой маске флага. Замечание: сбрасываемые биты должны быть равны 0, параметр pattern не должен принимать значения 0xFFFF. Например, если битовая маска флага до вызова сервиса была равна 0b0011001101010101, а параметр pattern равен 0b1100111111111111, то битовая маска флага станет равна 0b0000001101010101


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

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


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

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



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

1) , 2) данный код возврата возможен только в случае использования сервисов с проверкой параметров