~~NOTOC~~
===== tn_event_iclear() =====
Функция предназначена для сброса битов в битовой маске флага ''evf'' в прерывании. Биты сбрасываются по логическому И с параметром-маской ''pattern''.
Этот сервис не предназначен для запуска задач, ожидающих определенную битовую маску. Его можно использовать для сброса (отмены) события в прерывания.
**Вызов:**
TN_RETVAL tn_event_iclear (TN_EVENT *evf, TN_UWORD pattern);
**Разрешен вызов:** \\
В прерывании
**Параметры функции:**
; ''evf'' : указатель на объект типа флаг
; ''pattern'' : сбрасываемые биты в битовой маске флага. **Замечание:** сбрасываемые биты должны быть равны 0, параметр ''pattern'' не должен принимать значения ''0xFFFF''. Например, если битовая маска флага до вызова сервиса была равна ''0b0011001101010101'', а параметр ''pattern'' равен ''0b11**00**111111111111'', то битовая маска флага станет равна ''0b00**00**001101010101''
\\
**Возвращаемые значения:**
; ''TERR_WRONG_PARAM'' : некорректное значение параметра ((данный код возврата возможен только в случае использования сервисов с проверкой параметров))
; ''TERR_NOEXS'' : попытка изменения объекта, не являющегося флагом ((данный код возврата возможен только в случае использования сервисов с проверкой параметров))
; ''TERR_WCONTEXT'' : попытка вызова сервиса в контексте задачи
; ''TERR_NO_ERR'' : успешное выполнение
\\
**Пример вызова:**
extern TN_EVENT event;
tn_sys_interrupt (_T2Interrupt) /* прерывание от таймера */
{
IFS0bits.T2IF = 0; /* сброс флага прерывания */
tn_event_iclear(&event, ~(0x8000));
}
\\
----
[[tnkernel:ref:event:intro#Сервисы управления флагами|К списку сервисов]]