~~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#Сервисы управления флагами|К списку сервисов]]