<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.pic24.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://www.pic24.ru/feed.php">
        <title>PIC24 tnkernel:ref:event</title>
        <description></description>
        <link>http://www.pic24.ru/</link>
        <image rdf:resource="http://www.pic24.ru/lib/images/favicon.ico" />
       <dc:date>2023-02-10T22:53:18+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/intro?rev=1216589597"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_clear?rev=1216586497"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_create?rev=1240253337"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_delete?rev=1209414833"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iclear?rev=1216586623"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iset?rev=1216586414"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iwait?rev=1216586749"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_set?rev=1216586451"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_wait?rev=1216586688"/>
                <rdf:li rdf:resource="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_wait_polling?rev=1216586808"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://www.pic24.ru/lib/images/favicon.ico">
        <title>PIC24</title>
        <link>http://www.pic24.ru/</link>
        <url>http://www.pic24.ru/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/intro?rev=1216589597">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T01:33:17+03:00</dc:date>
        <title>TNKernel : Флаги</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/intro?rev=1216589597</link>
        <description>


&lt;h1&gt;&lt;a name=&quot;tnkernel_флаги&quot; id=&quot;tnkernel_флаги&quot;&gt;TNKernel : Флаги&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;TNKernel : Флаги&quot; [1-42] --&gt;
&lt;h2&gt;&lt;a name=&quot;введение&quot; id=&quot;введение&quot;&gt;Введение&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;em&gt;Флаг&lt;/em&gt;, как и &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/sem/intro&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:sem:intro&quot;&gt;семафор&lt;/a&gt;, является объектом RTOS, предназначенным для синхронизации задач. В отличие от семафора флаг не имеет счетчика свободных ресурсов, однако с каждым флагом ассоциирован элемент, называемый &lt;em&gt;битовой маской&lt;/em&gt;. Битовая маска это переменная с разрядностью, равной, как правило, разрядности машинного слова. В TNKernel битовая маска флага имеет разрядность 16 бит для PIC24/dsPIC и 32 бита для ARM/PIC32.
&lt;/p&gt;

&lt;p&gt;
Любая задача (или системное прерывание) может с помощью &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;сервисов управления флагом&lt;/a&gt;&lt;/span&gt; установить или сбросить определенные биты в битовой маске, сигнализируя таким образом об определенном событии. 
&lt;/p&gt;

&lt;p&gt;
Задача может ожидать появления определенного набора битов в битовой маске. Как только битовая маска флага станет равна ожидаемой, задача перейдет в состояние готовых к выполнению.
&lt;/p&gt;

&lt;p&gt;
В TNKernel существует два типа флагов. Первый тип подразумевает, что ожидать события (то есть определенного набора битов в маске флага) будет несколько задач. Второй тип разрешает прием события только одной задаче - в этом случае биты в маске могут быть сброшены средствами сервиса.
&lt;/p&gt;

&lt;p&gt;
В сервис ожидания в качестве параметра передается аргумент, который указывает, какая логика будет использоваться для ожидания битовой маски: AND или OR. В первом случае задача будет переведена в состояние готовых к выполнению, если &lt;em&gt;все&lt;/em&gt; ожидаемые биты будут установлены. Во втором случае - если &lt;em&gt;хотя бы один&lt;/em&gt; из ожидаемых битов будет установлен.
&lt;/p&gt;

&lt;p&gt;
&lt;p&gt;&lt;div class=&quot;noteclassic&quot;&gt;
В TNKernel будет запущена задача, которая стоит первой в очереди задач ожидающих флаг, вне зависимости от приоритетов задач в очереди.

&lt;/div&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://www.pic24.ru/lib/plugins/uparrow/images/blue_arrow.png&quot; alt=&quot;Наверх&quot;/&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Введение&quot; [43-3013] --&gt;
&lt;h2&gt;&lt;a name=&quot;структура_управления_флагом&quot; id=&quot;структура_управления_флагом&quot;&gt;Структура управления флагом&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Каждый флаг ассоциируется со структурой управления:
&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;typedef&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;struct&lt;/span&gt; _TN_EVENT_S
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    CDLL_QUEUE_S        wait_queue;
    TN_UWORD            attr;
    TN_UWORD            pattern;
    TN_OBJ_ID           id_event;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; TN_EVENT_S;&lt;/pre&gt;
&lt;p&gt;
В состав структуры флага входят следующие элементы:

&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;wait_queue&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 Очередь задач, ожидающих флаг		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;attr&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 Тип флага - для всех задач или для одной задачи		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;pattern&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 Битовая маска флага		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;id_event&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 Поле идентификации объекта как флага		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;

&lt;p&gt;&lt;div class=&quot;notewarning&quot;&gt;
Структура флага доступна только при определении &lt;code&gt;TN_DEBUG&lt;/code&gt;. Тем не менее, прямой доступ к элементам структуры флага крайне не рекомендуется, так как это является вмешательством в работу планировщика и других сервисов RTOS.

&lt;/div&gt;&lt;/p&gt;

&lt;/p&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://www.pic24.ru/lib/plugins/uparrow/images/blue_arrow.png&quot; alt=&quot;Наверх&quot;/&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Структура управления флагом&quot; [3014-4247] --&gt;
&lt;h2&gt;&lt;a name=&quot;сервисы_управления_флагами&quot; id=&quot;сервисы_управления_флагами&quot;&gt;Сервисы управления флагами&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

TNKernel имеет следующий набор функций (сервисов) для управления флагами:

&lt;/p&gt;
&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  Сервис  &lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;  Описание  &lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  Свойства  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot; colspan=&quot;3&quot;&gt; &lt;strong&gt;Создание и удаление флага&lt;/strong&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_create&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_create&quot;&gt;tn_event_create()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Создание флага &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_task.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_task.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_task.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в контексте задачи&quot; alt=&quot;Разрешен вызов только в контексте задачи&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_delete&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_delete&quot;&gt;tn_event_delete()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Удаление флага &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_task.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_task.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_task.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в контексте задачи&quot; alt=&quot;Разрешен вызов только в контексте задачи&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_ct_sw.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_ct_sw.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_ct_sw.png&quot; class=&quot;media&quot; title=&quot;Может привести к переключению контекста&quot; alt=&quot;Может привести к переключению контекста&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot; colspan=&quot;3&quot;&gt; &lt;strong&gt;Установка и сброс битовой маски флага&lt;/strong&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_set&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_set&quot;&gt;tn_event_set()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Установка битов в битовой маске &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_task.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_task.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_task.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в контексте задачи&quot; alt=&quot;Разрешен вызов только в контексте задачи&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_ct_sw.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_ct_sw.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_ct_sw.png&quot; class=&quot;media&quot; title=&quot;Может привести к переключению контекста&quot; alt=&quot;Может привести к переключению контекста&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iset&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_iset&quot;&gt;tn_event_iset()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Установка битов в битовой маске в прерывании &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_int.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_int.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_int.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в прерывании&quot; alt=&quot;Разрешен вызов только в прерывании&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_ct_sw.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_ct_sw.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_ct_sw.png&quot; class=&quot;media&quot; title=&quot;Может привести к переключению контекста&quot; alt=&quot;Может привести к переключению контекста&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_clear&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_clear&quot;&gt;tn_event_clear()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Сброс битов в битовой маске &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_task.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_task.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_task.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в контексте задачи&quot; alt=&quot;Разрешен вызов только в контексте задачи&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iclear&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_iclear&quot;&gt;tn_event_iclear()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Сброс битов в битовой маске в прерывании &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_int.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_int.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_int.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в прерывании&quot; alt=&quot;Разрешен вызов только в прерывании&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot; colspan=&quot;3&quot;&gt; &lt;strong&gt;Ожидание флага&lt;/strong&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_wait&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_wait&quot;&gt;tn_event_wait()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Ожидание флага &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_task.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_task.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_task.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в контексте задачи&quot; alt=&quot;Разрешен вызов только в контексте задачи&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_ct_sw.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_ct_sw.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_ct_sw.png&quot; class=&quot;media&quot; title=&quot;Может привести к переключению контекста&quot; alt=&quot;Может привести к переключению контекста&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_to.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_to.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_to.png&quot; class=&quot;media&quot; title=&quot;Сервис использует таймаут&quot; alt=&quot;Сервис использует таймаут&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iwait&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_iwait&quot;&gt;tn_event_iwait()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Ожидание флага в прерывании &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_int.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_int.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_int.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в прерывании&quot; alt=&quot;Разрешен вызов только в прерывании&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;   &lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_wait_polling&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:tn_event_wait_polling&quot;&gt;tn_event_wait_polling()&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Ожидание флага без блокировки &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://www.pic24.ru/lib/exe/detail.php/tnkernel/ref/attr_call_task.png?id=tnkernel%3Aref%3Aevent%3Aintro&quot; class=&quot;media&quot; title=&quot;tnkernel:ref:attr_call_task.png&quot;&gt;&lt;img src=&quot;http://www.pic24.ru/lib/exe/fetch.php/tnkernel/ref/attr_call_task.png&quot; class=&quot;media&quot; title=&quot;Разрешен вызов только в контексте задачи&quot; alt=&quot;Разрешен вызов только в контексте задачи&quot; /&gt;&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://www.pic24.ru/lib/plugins/uparrow/images/blue_arrow.png&quot; alt=&quot;Наверх&quot;/&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Сервисы управления флагами&quot; [4248-] --&gt;</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_clear?rev=1216586497">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T00:41:37+03:00</dc:date>
        <title>tn_event_clear()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_clear?rev=1216586497</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_clear&quot; id=&quot;tn_event_clear&quot;&gt;tn_event_clear()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

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

&lt;p&gt;
Этот сервис не предназначен для запуска задач, ожидающих определенную битовую маску. Его можно использовать для сброса события в задаче, ожидавшей флаг.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_clear &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf, TN_UWORD pattern&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В контексте задачи
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на объект типа флаг&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;сбрасываемые биты в битовой маске флага. &lt;em&gt;Замечание:&lt;/em&gt; сбрасываемые биты должны быть равны 0, параметр &lt;code&gt;pattern&lt;/code&gt; не должен принимать значения &lt;code&gt;0xFFFF&lt;/code&gt;. Например, если битовая маска флага до вызова сервиса была равна &lt;code&gt;0b0011001101010101&lt;/code&gt;, а параметр &lt;code&gt;pattern&lt;/code&gt; равен &lt;code&gt;0b11&lt;span style='color:blue; '&gt;&lt;strong&gt;00&lt;/strong&gt;&lt;/span&gt;111111111111&lt;/code&gt;, то битовая маска флага станет равна &lt;code&gt;0b00&lt;span style='color:blue; '&gt;&lt;strong&gt;00&lt;/strong&gt;&lt;/span&gt;001101010101&lt;/code&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра (&lt;em class=&quot;u&quot;&gt;замечание:&lt;/em&gt; данный код возврата возможен только в случае использования сервисов с проверкой параметров)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NOEXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка изменения объекта, не являющегося флагом (&lt;em class=&quot;u&quot;&gt;замечание:&lt;/em&gt; данный код возврата возможен только в случае использования сервисов с проверкой параметров)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WCONTEXT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка вызова сервиса в пользовательской критической секции или в прерывании&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_EVENT event;
&amp;nbsp;
tn_event_clear&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event, ~&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu12&quot;&gt;0x8000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_clear()&quot; [20-] --&gt;</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_create?rev=1240253337">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-20T22:48:57+03:00</dc:date>
        <title>tn_event_create()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_create?rev=1240253337</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_create&quot; id=&quot;tn_event_create&quot;&gt;tn_event_create()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Функция предназначена для создания флага. Поле &lt;code&gt;id_event&lt;/code&gt; структуры &lt;code&gt;evf&lt;/code&gt; должно быть равно нулю до момента создания флага. Таким образом уже созданные флаги защищаются от повторного создания.
&lt;/p&gt;

&lt;p&gt;
Память для управляющей структуры &lt;code&gt;evf&lt;/code&gt; должна быть выделена до момента создания флага. Память может быть выделена на этапе компиляции (объявление глобальной переменной типа &lt;code&gt;TN_EVENT&lt;/code&gt;), либо динамически, если пользовательское приложение использует менеджер памяти.
&lt;/p&gt;

&lt;p&gt;
Параметр &lt;code&gt;attr&lt;/code&gt; определяет тип флага. Если параметр равен &lt;code&gt;TN_EVENT_ATTR_MULTI&lt;/code&gt;, то флаг может ожидать несколько задач. Если параметр равен &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt; - флаг может ожидать только одна задача. В этом случае допустимо объявление параметра &lt;code&gt;TN_EVENT_ATTR_CLR&lt;/code&gt;, который указывает на то, что битовая маска будет сбрасываться автоматически. Параметр &lt;code&gt;TN_EVENT_ATTR_CLR&lt;/code&gt; объявляется вместе с параметром &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt;: &lt;code&gt;(TN_EVENT_ATTR_SINGLE | TN_EVENT_ATTR_CLR)&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_create &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf, TN_UWORD attr, TN_UWORD pattern&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В контексте задачи, в пользовательской критической секции, в прерывании
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на структуру флага типа &lt;code&gt;TN_EVENT&lt;/code&gt;. Структура должна быть создана до момента вызова функции, статически или динамически&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;attr&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;тип флага:
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_ATTR_MULTI&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 флаг может ожидать несколько задач		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 флаг может ожидать только одна задача		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_ATTR_CLR&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 битовая маска будет сброшена автоматически. Определение может быть объединено по ИЛИ только с &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt; 		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
  
&lt;p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;значение битовой маски сразу после создания флага&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра (&lt;em class=&quot;u&quot;&gt;замечание:&lt;/em&gt; данный код возврата возможен только в случае использования сервисов с проверкой параметров)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_EXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка создания флага, который уже создан&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_EVENT event_test;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/* Создается флаг, который может ожидать только одна задача с
   автоматическим сбросом соответствующих битов в битовой
   маске. Начальное значение битовой маски равно 0x5555
*/&lt;/span&gt;
tn_event_create&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event_test, TN_EVENT_ATTR_SINGLE | TN_EVENT_ATTR_CLR, &lt;span class=&quot;nu12&quot;&gt;0x5555&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_create()&quot; [18-] --&gt;</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_delete?rev=1209414833">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-29T00:33:53+03:00</dc:date>
        <title>tn_event_delete()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_delete?rev=1209414833</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_delete&quot; id=&quot;tn_event_delete&quot;&gt;tn_event_delete()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Функция предназначена для удаления флага. Поле &lt;code&gt;id_event&lt;/code&gt; структуры &lt;code&gt;evf&lt;/code&gt; после выполнения сервиса устанавливается в 0. Все задачи, ожидающие флаг, выйдут из сервиса ожидания с кодом возврата &lt;code&gt;TERR_DLT&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_delete &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В контексте задачи
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на структуру удаляемого флага&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра (&lt;em class=&quot;u&quot;&gt;замечание:&lt;/em&gt; данный код возврата возможен только в случае использования сервисов с проверкой параметров)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WCONTEXT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка удаления флага в пользовательской критической секции или в прерывании&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_EXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка удаления объекта, не являющегося флагом&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_EVENT event_test;
&amp;nbsp;
tn_event_delete&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event_test&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_delete()&quot; [18-] --&gt;</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iclear?rev=1216586623">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T00:43:43+03:00</dc:date>
        <title>tn_event_iclear()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iclear?rev=1216586623</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_iclear&quot; id=&quot;tn_event_iclear&quot;&gt;tn_event_iclear()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

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

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

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_iclear &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf, TN_UWORD pattern&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В прерывании
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на объект типа флаг&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;сбрасываемые биты в битовой маске флага. &lt;strong&gt;Замечание:&lt;/strong&gt; сбрасываемые биты должны быть равны 0, параметр &lt;code&gt;pattern&lt;/code&gt; не должен принимать значения &lt;code&gt;0xFFFF&lt;/code&gt;. Например, если битовая маска флага до вызова сервиса была равна &lt;code&gt;0b0011001101010101&lt;/code&gt;, а параметр &lt;code&gt;pattern&lt;/code&gt; равен &lt;code&gt;0b11&lt;span style='color:blue; '&gt;&lt;strong&gt;00&lt;/strong&gt;&lt;/span&gt;111111111111&lt;/code&gt;, то битовая маска флага станет равна &lt;code&gt;0b00&lt;span style='color:blue; '&gt;&lt;strong&gt;00&lt;/strong&gt;&lt;/span&gt;001101010101&lt;/code&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NOEXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка изменения объекта, не являющегося флагом &lt;sup&gt;&lt;a href=&quot;#fn__2&quot; name=&quot;fnt__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WCONTEXT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка вызова сервиса в контексте задачи&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;extern&lt;/span&gt; TN_EVENT event;
&amp;nbsp;
tn_sys_interrupt &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_T2Interrupt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;        &lt;span class=&quot;coMULTI&quot;&gt;/* прерывание от таймера */&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    IFS0bits.&lt;span class=&quot;me1&quot;&gt;T2IF&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu19&quot;&gt;0&lt;/span&gt;;                 &lt;span class=&quot;coMULTI&quot;&gt;/* сброс флага прерывания */&lt;/span&gt;
    tn_event_iclear&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event, ~&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu12&quot;&gt;0x8000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_iclear()&quot; [22-] --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
, &lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; name=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
данный код возврата возможен только в случае использования сервисов с проверкой параметров&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iset?rev=1216586414">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T00:40:14+03:00</dc:date>
        <title>tn_event_iset()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iset?rev=1216586414</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_iset&quot; id=&quot;tn_event_iset&quot;&gt;tn_event_iset()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

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

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

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

&lt;p&gt;
Если флаг имеет атрибут &lt;code&gt;TN_EVENT_ATTR_CLR&lt;/code&gt;, то битовая маска флага сбрасывается.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_iset &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf, TN_UWORD pattern&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В прерывании
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на объект типа флаг&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;устанавливаемые биты в битовой маске флага. Например, если битовая маска флага до вызова сервиса была равно &lt;code&gt;0b0011001101010101&lt;/code&gt;, а параметр &lt;code&gt;pattern&lt;/code&gt; равен &lt;code&gt;0b&lt;span style='color:blue; '&gt;&lt;strong&gt;11&lt;/strong&gt;&lt;/span&gt;00000000000000&lt;/code&gt;, то битовая маска флага станет равна &lt;code&gt;0b&lt;span style='color:blue; '&gt;&lt;strong&gt;11&lt;/strong&gt;&lt;/span&gt;11001101010101&lt;/code&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра (&lt;em class=&quot;u&quot;&gt;замечание:&lt;/em&gt; данный код возврата возможен только в случае использования сервисов с проверкой параметров)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NOEXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка изменения объекта, не являющегося флагом (&lt;em class=&quot;u&quot;&gt;замечание:&lt;/em&gt; данный код возврата возможен только в случае использования сервисов с проверкой параметров)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WCONTEXT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка вызова сервиса в контексте задачи&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;extern&lt;/span&gt; TN_EVENT event;
&amp;nbsp;
tn_sys_interrupt &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_T2Interrupt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;        &lt;span class=&quot;coMULTI&quot;&gt;/* прерывание от таймера */&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    IFS0bits.&lt;span class=&quot;me1&quot;&gt;T2IF&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu19&quot;&gt;0&lt;/span&gt;;                 &lt;span class=&quot;coMULTI&quot;&gt;/* сброс флага прерывания */&lt;/span&gt;
    tn_event_iset&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event, &lt;span class=&quot;nu12&quot;&gt;0x8000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_iset()&quot; [20-] --&gt;</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iwait?rev=1216586749">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T00:45:49+03:00</dc:date>
        <title>tn_event_iwait()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_iwait?rev=1216586749</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_iwait&quot; id=&quot;tn_event_iwait&quot;&gt;tn_event_iwait()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Функция предназначена для проверки битовой маски флага в прерывании.
&lt;/p&gt;

&lt;p&gt;
Условие проверки определяется маской &lt;code&gt;wait_pattern&lt;/code&gt; и режимом ожидания &lt;code&gt;wait_mode&lt;/code&gt;. Если условие выполняется, битовая маска флага будет возвращена по указателю &lt;code&gt;p_flags_pattern&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Если на момент вызова функции условие не выполняется, функция вернет код ошибки &lt;code&gt;TERR_TIMEOUT&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Если флаг &lt;code&gt;evf&lt;/code&gt; имеет атрибут &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt;, а очередь ожидания флага не пуста, то функция вернет код ошибки &lt;code&gt;TERR_ILUSE&lt;/code&gt;, что означает попытку проверки флага, предназначенного только для одной (уже ожидающей его) задачи.
&lt;/p&gt;

&lt;p&gt;
Если флаг &lt;code&gt;evf&lt;/code&gt; имеет атрибут &lt;code&gt;TN_EVENT_ATTR_CLR&lt;/code&gt;, битовая маска флага обнуляется.
&lt;/p&gt;

&lt;p&gt;
Параметр &lt;code&gt;wait_mode&lt;/code&gt; формирует условие совпадения. Если &lt;code&gt;wait_mode == TN_EVENT_WCOND_OR&lt;/code&gt;, то условие будет выполнено, если хотя бы один бит из битовой маски флага будет соответствовать &lt;code&gt;wait_pattern&lt;/code&gt;. Если &lt;code&gt;wait_mode == TN_EVENT_WCOND_AND&lt;/code&gt;, то для выполнения условия необходимо чтобы все биты битовой маски флага соответствовали параметру &lt;code&gt;wait_pattern&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_iwait &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf,
                          TN_UWORD wait_pattern,
                          TN_UWORD wait_mode,
                          TN_UWORD &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;p_flags_pattern
                         &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В прерывании
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на объект типа флаг&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;wait_pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;параметр сравнения с битовой маской флага&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;wait_mode&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;условие совпадения, может принимать одно из двух значений:
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_WCOND_OR&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 условие выполняется, если хотя бы один из битов маски флага совпадает с маской сравнения &lt;code&gt;wait_pattern&lt;/code&gt;		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_WCOND_AND&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 условие выполняется только в том случае, если хотя все биты маски флага совпадают с маской сравнения &lt;code&gt;wait_pattern&lt;/code&gt;		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;p_flags_pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель по которому возвращается значение битовой маски флага если условие выполнено&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;
&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NOEXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка обращения к объекту, не являющегося флагом &lt;sup&gt;&lt;a href=&quot;#fn__2&quot; name=&quot;fnt__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WCONTEXT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка проверки флага в контексте задачи&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_ILUSE&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка проверки флага с атрибутом &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt;, если его очередь ожидания не пуста&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_TIMEOUT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;условие не выполняется&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;extern&lt;/span&gt; TN_EVENT event_test;
&amp;nbsp;
tn_sys_interrupt &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_T2Interrupt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;        &lt;span class=&quot;coMULTI&quot;&gt;/* прерывание от таймера */&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    TN_UWORD flag;
&amp;nbsp;
    IFS0bits.&lt;span class=&quot;me1&quot;&gt;T2IF&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu19&quot;&gt;0&lt;/span&gt;;                 &lt;span class=&quot;coMULTI&quot;&gt;/* сброс флага прерывания */&lt;/span&gt;
    tn_event_wait&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event_test, &lt;span class=&quot;nu12&quot;&gt;0x8000&lt;/span&gt;, TN_EVENT_WCOND_AND, &lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;flag&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_iwait()&quot; [16-] --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
, &lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; name=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
данный код возврата возможен только в случае использования сервисов с проверкой параметров&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_set?rev=1216586451">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T00:40:51+03:00</dc:date>
        <title>tn_event_set()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_set?rev=1216586451</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_set&quot; id=&quot;tn_event_set&quot;&gt;tn_event_set()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

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

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

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

&lt;p&gt;
Если флаг имеет атрибут &lt;code&gt;TN_EVENT_ATTR_CLR&lt;/code&gt;, то битовая маска флага сбрасывается.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_set &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf, TN_UWORD pattern&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В контексте задачи
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на объект типа флаг&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;устанавливаемые биты в битовой маске флага. Например, если битовая маска флага до вызова сервиса была равно &lt;code&gt;0b0011001101010101&lt;/code&gt;, а параметр &lt;code&gt;pattern&lt;/code&gt; равен &lt;code&gt;0b&lt;span style='color:blue; '&gt;&lt;strong&gt;11&lt;/strong&gt;&lt;/span&gt;00000000000000&lt;/code&gt;, то битовая маска флага станет равна &lt;code&gt;0b&lt;span style='color:blue; '&gt;&lt;strong&gt;11&lt;/strong&gt;&lt;/span&gt;11001101010101&lt;/code&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра (&lt;em class=&quot;u&quot;&gt;замечание:&lt;/em&gt; данный код возврата возможен только в случае использования сервисов с проверкой параметров)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NOEXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка изменения объекта, не являющегося флагом (&lt;em class=&quot;u&quot;&gt;замечание:&lt;/em&gt; данный код возврата возможен только в случае использования сервисов с проверкой параметров)&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WCONTEXT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка изменения флага в пользовательской критической секции или в прерывании&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_EVENT event_test;
&amp;nbsp;
tn_event_set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event_test, &lt;span class=&quot;nu12&quot;&gt;0x8000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_set()&quot; [19-] --&gt;</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_wait?rev=1216586688">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T00:44:48+03:00</dc:date>
        <title>tn_event_wait()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_wait?rev=1216586688</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_wait&quot; id=&quot;tn_event_wait&quot;&gt;tn_event_wait()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Функция предназначена для перевода вызвавшей ее задачи в состояние ожидания до тех пор, пока условие совпадения с битовой маской флага &lt;code&gt;evf&lt;/code&gt; не будет выполнено. Условие определяется параметром &lt;code&gt;wait_pattern&lt;/code&gt; и режимом ожидания &lt;code&gt;wait_mode&lt;/code&gt;. Как только условие будет выполнено, битовая маска флага будет возвращена по указателю &lt;code&gt;p_flags_pattern&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Если на момент вызова функции условие выполняется, задача не будет переведена в состояние ожидания и сервис завершит свое выполнение.
&lt;/p&gt;

&lt;p&gt;
Если на момент вызова функции условие не выполняется, то задача переводится в состояние ожидания и ставится в очередь ожидания флага. Функция может быть вызвана с таймаутом - если значение параметра &lt;code&gt;timeout&lt;/code&gt; не равно &lt;code&gt;TN_WAIT_INFINITE&lt;/code&gt;, то по прошествии &lt;em&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/em&gt; системных тиков, функция вернет управление прерванной задаче с кодом возврата &lt;code&gt;TERR_TIMEOUT&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Если флаг &lt;code&gt;evf&lt;/code&gt; имеет атрибут &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt;, а очередь ожидания флага не пуста, то функция вернет код ошибки &lt;code&gt;TERR_ILUSE&lt;/code&gt;, что означает попытку ожидания флага, предназначенного только для одной (уже ожидающей его) задачи.
&lt;/p&gt;

&lt;p&gt;
Если флаг &lt;code&gt;evf&lt;/code&gt; имеет атрибут &lt;code&gt;TN_EVENT_ATTR_CLR&lt;/code&gt;, битовая маска флага обнуляется.
&lt;/p&gt;

&lt;p&gt;
Параметр &lt;code&gt;wait_mode&lt;/code&gt; формирует условие ожидания флага. Если &lt;code&gt;wait_mode == TN_EVENT_WCOND_OR&lt;/code&gt;, то условие ожидания будет выполнено, если хотя бы один бит из битовой маски флага будет соответствовать &lt;code&gt;wait_pattern&lt;/code&gt;. Если &lt;code&gt;wait_mode == TN_EVENT_WCOND_AND&lt;/code&gt;, то для выполнения условия ожидания необходимо чтобы все биты битовой маски флага соответствовали параметру &lt;code&gt;wait_pattern&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_wait &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT   &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf,
                         TN_UWORD   wait_pattern,
                         TN_UWORD   wait_mode,
                         TN_UWORD   &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;p_flags_pattern,
                         TN_TIMEOUT timeout
                        &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В контексте задачи
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на объект типа флаг&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;wait_pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;параметр сравнения с битовой маской флага&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;wait_mode&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;режим ожидания, формирующий условие, может принимать одно из двух значений:
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_WCOND_OR&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 условие выполняется, если хотя бы один из битов маски флага совпадает с маской сравнения &lt;code&gt;wait_pattern&lt;/code&gt;		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_WCOND_AND&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 условие выполняется только в том случае, если хотя все биты маски флага совпадают с маской сравнения &lt;code&gt;wait_pattern&lt;/code&gt;		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;p_flags_pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель по которому возвращается значение битовой маски флага после выполнения условия&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;timeout&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;таймаут, в течении которого задача ожидает выполнения условия&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;
&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NOEXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка обращения к объекту, не являющегося флагом &lt;sup&gt;&lt;a href=&quot;#fn__2&quot; name=&quot;fnt__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WCONTEXT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка изменения флага в пользовательской критической секции или в прерывании&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_ILUSE&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка ожидания флага с атрибутом &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt;, если его очередь ожидания не пуста&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_TIMEOUT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;выход из сервиса по таймауту&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_EVENT event_test;
TN_UWORD flag;
&amp;nbsp;
tn_event_wait&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event_test, &lt;span class=&quot;nu12&quot;&gt;0x8000&lt;/span&gt;, TN_EVENT_WCOND_AND, &lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;flag, TN_WAIT_INFINITE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_wait()&quot; [21-] --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
, &lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; name=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
данный код возврата возможен только в случае использования сервисов с проверкой параметров&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
    <item rdf:about="http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_wait_polling?rev=1216586808">
        <dc:format>text/html</dc:format>
        <dc:date>2008-07-21T00:46:48+03:00</dc:date>
        <title>tn_event_wait_polling()</title>
        <link>http://www.pic24.ru/doku.php/tnkernel/ref/event/tn_event_wait_polling?rev=1216586808</link>
        <description>




&lt;h2&gt;&lt;a name=&quot;tn_event_wait_polling&quot; id=&quot;tn_event_wait_polling&quot;&gt;tn_event_wait_polling()&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Функция предназначена для проверки битовой маски флага без блокировки задачи.
&lt;/p&gt;

&lt;p&gt;
Условие проверки определяется маской &lt;code&gt;wait_pattern&lt;/code&gt; и режимом ожидания &lt;code&gt;wait_mode&lt;/code&gt;. Если условие выполняется, битовая маска флага будет возвращена по указателю &lt;code&gt;p_flags_pattern&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Если на момент вызова функции условие не выполняется, функция вернет код ошибки &lt;code&gt;TERR_TIMEOUT&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Если флаг &lt;code&gt;evf&lt;/code&gt; имеет атрибут &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt;, а очередь ожидания флага не пуста, то функция вернет код ошибки &lt;code&gt;TERR_ILUSE&lt;/code&gt;, что означает попытку проверки флага, предназначенного только для одной (уже ожидающей его) задачи.
&lt;/p&gt;

&lt;p&gt;
Если флаг &lt;code&gt;evf&lt;/code&gt; имеет атрибут &lt;code&gt;TN_EVENT_ATTR_CLR&lt;/code&gt;, битовая маска флага обнуляется.
&lt;/p&gt;

&lt;p&gt;
Параметр &lt;code&gt;wait_mode&lt;/code&gt; формирует условие совпадения. Если &lt;code&gt;wait_mode == TN_EVENT_WCOND_OR&lt;/code&gt;, то условие будет выполнено, если хотя бы один бит из битовой маски флага будет соответствовать &lt;code&gt;wait_pattern&lt;/code&gt;. Если &lt;code&gt;wait_mode == TN_EVENT_WCOND_AND&lt;/code&gt;, то для выполнения условия необходимо чтобы все биты битовой маски флага соответствовали параметру &lt;code&gt;wait_pattern&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Вызов:&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_RETVAL tn_event_wait_polling &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TN_EVENT &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;evf,
                                 TN_UWORD wait_pattern,
                                 TN_UWORD wait_mode,
                                 TN_UWORD &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;p_flags_pattern
                                &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Разрешен вызов:&lt;/strong&gt; &lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;
В контексте задачи
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Параметры функции:&lt;/strong&gt;
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;evf&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель на объект типа флаг&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;wait_pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;параметр сравнения с битовой маской флага&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;wait_mode&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;условие совпадения, может принимать одно из двух значений:
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_WCOND_OR&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 условие выполняется, если хотя бы один из битов маски флага совпадает с маской сравнения &lt;code&gt;wait_pattern&lt;/code&gt;		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;code&gt;TN_EVENT_WCOND_AND&lt;/code&gt;		&lt;/td&gt;
		&lt;td&gt;
 условие выполняется только в том случае, если хотя все биты маски флага совпадают с маской сравнения &lt;code&gt;wait_pattern&lt;/code&gt;		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;p_flags_pattern&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;указатель по которому возвращается значение битовой маски флага если условие выполнено&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;
&lt;br/&gt;
 
&lt;/p&gt;

&lt;p&gt;

&lt;strong&gt;Возвращаемые значения:&lt;/strong&gt;  
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WRONG_PARAM&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;некорректное значение параметра &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NOEXS&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка обращения к объекту, не являющегося флагом &lt;sup&gt;&lt;a href=&quot;#fn__2&quot; name=&quot;fnt__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_WCONTEXT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка вызова сервиса из пользовательской критической секции или в прерывании&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_ILUSE&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;попытка проверки флага с атрибутом &lt;code&gt;TN_EVENT_ATTR_SINGLE&lt;/code&gt;, если его очередь ожидания не пуста&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_TIMEOUT&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;условие не выполняется&lt;/dd&gt;
&lt;dt&gt;&lt;span class='term'&gt; &lt;code&gt;TERR_NO_ERR&lt;/code&gt;&lt;/span&gt;&lt;/dt&gt;
&lt;dd&gt;успешное выполнение&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br/&gt;
 
&lt;strong&gt;Пример вызова:&lt;/strong&gt;  

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;TN_EVENT event_test;
TN_UWORD flag;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tn_event_wait_polling&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;event_test, &lt;span class=&quot;nu12&quot;&gt;0x8000&lt;/span&gt;, TN_EVENT_WCOND_AND, &lt;span class=&quot;sy3&quot;&gt;&amp;amp;&lt;/span&gt;flag&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;==&lt;/span&gt; TERR_TIMEOUT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;coMULTI&quot;&gt;/* ... */&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;
 

&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.pic24.ru/doku.php/tnkernel/ref/event/intro#сервисы_управления_флагами&quot; class=&quot;wikilink1&quot; title=&quot;tnkernel:ref:event:intro&quot;&gt;К списку сервисов&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;tn_event_wait_polling()&quot; [16-] --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
, &lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; name=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
данный код возврата возможен только в случае использования сервисов с проверкой параметров&lt;/div&gt;
&lt;/div&gt;
</description>
    </item>
</rdf:RDF>
