<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://wiki.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://wiki.pic24.ru/feed.php">
        <title>PIC24 osa:ref:description</title>
        <description></description>
        <link>http://wiki.pic24.ru/</link>
        <image rdf:resource="http://wiki.pic24.ru/lib/images/favicon.ico" />
       <dc:date>2023-02-10T11:18:10+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.pic24.ru/doku.php/osa/ref/description/data_types?rev=1290507723"/>
                <rdf:li rdf:resource="http://wiki.pic24.ru/doku.php/osa/ref/description/events_and_priority?rev=1249734285"/>
                <rdf:li rdf:resource="http://wiki.pic24.ru/doku.php/osa/ref/description/intro?rev=1244064241"/>
                <rdf:li rdf:resource="http://wiki.pic24.ru/doku.php/osa/ref/description/predefined?rev=1291810455"/>
                <rdf:li rdf:resource="http://wiki.pic24.ru/doku.php/osa/ref/description/project?rev=1289823262"/>
                <rdf:li rdf:resource="http://wiki.pic24.ru/doku.php/osa/ref/description/scheduler?rev=1295358477"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.pic24.ru/lib/images/favicon.ico">
        <title>PIC24</title>
        <link>http://wiki.pic24.ru/</link>
        <url>http://wiki.pic24.ru/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://wiki.pic24.ru/doku.php/osa/ref/description/data_types?rev=1290507723">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-23T13:22:03+03:00</dc:date>
        <title>OSA : Типы данных</title>
        <link>http://wiki.pic24.ru/doku.php/osa/ref/description/data_types?rev=1290507723</link>
        <description>


&lt;h1&gt;&lt;a name=&quot;osa_типы_данных&quot; id=&quot;osa_типы_данных&quot;&gt;OSA : Типы данных&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;OSA : Типы данных&quot; [1-43] --&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;/div&gt;
&lt;!-- SECTION &quot;Системные&quot; [44-74] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_uint8&quot; id=&quot;ost_uint8&quot;&gt;OST_UINT8&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Платформонезависимое беззнаковое 8-битное целое
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;OST_UINT8&quot; [75-186] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_uint16&quot; id=&quot;ost_uint16&quot;&gt;OST_UINT16&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Платформонезависимое беззнаковое 16-битное целое
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;OST_UINT16&quot; [187-300] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_uint32&quot; id=&quot;ost_uint32&quot;&gt;OST_UINT32&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Платформонезависимое беззнаковое 32-битное целое
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;OST_UINT32&quot; [301-414] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_word&quot; id=&quot;ost_word&quot;&gt;OST_WORD&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Платформозависимое беззнаковое целое. Имеет разрядность шины данных выбранного контроллера.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;OST_WORD&quot; [415-609] --&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;/div&gt;
&lt;!-- SECTION &quot;Общие&quot; [610-633] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_csem&quot; id=&quot;ost_csem&quot;&gt;OST_CSEM&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Тип счетного семафора.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение&quot; id=&quot;определение&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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; OST_UINT8 OST_CSEM;&lt;/pre&gt;
&lt;p&gt;
Тип доступен, только если в &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OSAcfg.h&lt;/a&gt;&lt;/span&gt; определена константа &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_ENABLE_CSEM&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение&quot; id=&quot;переопределение&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

Этот тип можно изменить, задав вручную его размерность в файле &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OSAcfg.h&lt;/a&gt;&lt;/span&gt;:

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#define OS_CSEM_SIZE    4&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

Допустимые значения для &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_CSEM_SIZE&lt;/a&gt;&lt;/span&gt;:
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
1		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint8&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT8&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^8-1)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
2		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint16&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT16&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^16-1)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
4		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint32&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT32&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^32-1)		&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://wiki.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;OST_CSEM&quot; [634-1578] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_flag&quot; id=&quot;ost_flag&quot;&gt;OST_FLAG&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Флаги.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение1&quot; id=&quot;определение1&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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; OST_UINT8   OST_FLAG;
&lt;span class=&quot;kw4&quot;&gt;typedef&lt;/span&gt; OST_UINT16  OST_FLAG16;
&lt;span class=&quot;kw4&quot;&gt;typedef&lt;/span&gt; OST_UINT32  OST_FLAG32;&lt;/pre&gt;
&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение1&quot; id=&quot;переопределение1&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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://wiki.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;OST_FLAG&quot; [1579-1839] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_msg&quot; id=&quot;ost_msg&quot;&gt;OST_MSG&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Указатель на сообщение.

&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение2&quot; id=&quot;определение2&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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;void&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt; OST_MSG;&lt;/pre&gt;
&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение2&quot; id=&quot;переопределение2&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

Этот тип можно переопределить, задав константу &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_MSG_TYPE&lt;/a&gt;&lt;/span&gt; в файле &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OSAcfg.h&lt;/a&gt;&lt;/span&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;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw4&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt; Name;
    &lt;span class=&quot;kw4&quot;&gt;char&lt;/span&gt; Age;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; MyType;
&amp;nbsp;
&lt;span class=&quot;co2&quot;&gt;#define OS_MSG_TYPE MyType *&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_MSG_TYPE&lt;/a&gt;&lt;/span&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://wiki.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;OST_MSG&quot; [1840-2529] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_msg_cb&quot; id=&quot;ost_msg_cb&quot;&gt;OST_MSG_CB&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Дескриптор указателя на сообщения. Помимо самого указателя содержит флаг состояния &lt;em&gt;свободен/занят&lt;/em&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение3&quot; id=&quot;определение3&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw4&quot;&gt;char&lt;/span&gt;      status;     &lt;span class=&quot;co1&quot;&gt;// Состояние (активно/неактивно)&lt;/span&gt;
    OST_MSG   msg;        &lt;span class=&quot;co1&quot;&gt;// Указатель на сообщение&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; OST_MSG_CB;&lt;/pre&gt;
&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение3&quot; id=&quot;переопределение3&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

Возможно переопределение только самого указателя &lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_msg&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_MSG&lt;/a&gt;&lt;/span&gt;&lt;/span&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://wiki.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;OST_MSG_CB&quot; [2530-3184] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_dtimer&quot; id=&quot;ost_dtimer&quot;&gt;OST_DTIMER&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Динамический таймер.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение4&quot; id=&quot;определение4&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    OST_DTIMER_FLAGS Flags;     &lt;span class=&quot;co1&quot;&gt;// Флаги управления и состояния таймера&lt;/span&gt;
    &lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;           Next;      &lt;span class=&quot;co1&quot;&gt;// Указатель на следующий таймер&lt;/span&gt;
    OS_DTIMER_TYPE   Timer;     &lt;span class=&quot;co1&quot;&gt;// Сам таймер&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; OST_DTIMER;&lt;/pre&gt;
&lt;p&gt;
Каждый таймер помимо самого счетчика содержит информацию о состоянии таймера. Флаги состояния говорят обработчику &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_timer&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_timer&quot;&gt;OS_Timer&lt;/a&gt;&lt;/span&gt;, нужно ли увеличивать значение таймера, является ли таймер активным и т.д.
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
&lt;em&gt;Flags&lt;/em&gt;		&lt;/td&gt;
		&lt;td&gt;
Флаги состояния (см. &lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_dtimer_flags&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_DTIMER_FLAGS&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
&lt;em&gt;Next&lt;/em&gt;		&lt;/td&gt;
		&lt;td&gt;
Указатель на следующий активный таймер в списке		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
&lt;em&gt;Timer&lt;/em&gt;		&lt;/td&gt;
		&lt;td&gt;
Сам счетчик. Разрядность определяется константой &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration#типы_данных&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_DTIMER_SIZE&lt;/a&gt;&lt;/span&gt;		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение4&quot; id=&quot;переопределение4&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

Т.к. сам счетчик имеет тип системного таймера, то разрядность динамического таймера можно изменить, задав константу &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration#типы_данных&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_DTIMER_SIZE&lt;/a&gt;&lt;/span&gt; в файле &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OSAcfg.h&lt;/a&gt;&lt;/span&gt;:

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#define OS_DTIMER_SIZE       4&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Допустимые значения для &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration#типы_данных&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_DTIMER_SIZE&lt;/a&gt;&lt;/span&gt;:
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
1		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint8&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT8&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^8-1)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
2		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint16&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT16&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^16-1)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
4		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint32&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT32&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^32-1)		&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://wiki.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;OST_DTIMER&quot; [3185-5236] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_qtimer&quot; id=&quot;ost_qtimer&quot;&gt;OST_QTIMER&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Таймер для работы с очередью таймеров.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение5&quot; id=&quot;определение5&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    OST_QTIMER_FLAGS Flags;     &lt;span class=&quot;co1&quot;&gt;// Флаги управления и состояния таймера&lt;/span&gt;
    &lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;           Next;      &lt;span class=&quot;co1&quot;&gt;// Указатель на следующий таймер&lt;/span&gt;
    OS_QTIMER_TYPE   Timer;     &lt;span class=&quot;co1&quot;&gt;// Сам таймер&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; OST_QTIMER;&lt;/pre&gt;
&lt;p&gt;
Каждый таймер помимо самого счетчика содержит информацию о состоянии таймера. Флаги состояния говорят обработчику &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_timer&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_timer&quot;&gt;OS_Timer&lt;/a&gt;&lt;/span&gt;, нужно ли увеличивать значение таймера.
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
&lt;em&gt;Flags&lt;/em&gt;		&lt;/td&gt;
		&lt;td&gt;
Флаги состояния (см. &lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_qtimer_flags&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_QTIMER_FLAGS&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
&lt;em&gt;Next&lt;/em&gt;		&lt;/td&gt;
		&lt;td&gt;
Указатель на следующий активный таймер в списке		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
&lt;em&gt;Timer&lt;/em&gt;		&lt;/td&gt;
		&lt;td&gt;
Сам счетчик. Разрядность определяется константой &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration#типы_данных&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_QTIMER_SIZE&lt;/a&gt;&lt;/span&gt;		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение5&quot; id=&quot;переопределение5&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Т.к. сам счетчик имеет тип системного таймера, то разрядность таймера можно изменить, задав константу &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration#типы_данных&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_QTIMER_SIZE&lt;/a&gt;&lt;/span&gt; в файле &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OSAcfg.h&lt;/a&gt;&lt;/span&gt;:

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#define OS_QTIMER_SIZE       4&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Допустимые значения для &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration#типы_данных&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_QTIMER_SIZE&lt;/a&gt;&lt;/span&gt;:
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
1		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint8&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT8&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^8-1)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
2		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint16&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT16&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^16-1)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
4		&lt;/td&gt;
		&lt;td&gt;
&lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_uint32&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_UINT32&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; (0..2^32-1)		&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://wiki.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;OST_QTIMER&quot; [5237-7230] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_queue&quot; id=&quot;ost_queue&quot;&gt;OST_QUEUE&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Очередь указателей на сообщения.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение6&quot; id=&quot;определение6&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    OST_QUEUE_CONTROL Q;
    OST_MSG &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;pMsg;              &lt;span class=&quot;co1&quot;&gt;// Указатель на саму очередь&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; OST_QUEUE;&lt;/pre&gt;
&lt;p&gt;
&lt;span class=&quot;important&quot;&gt;Q&lt;/span&gt; - &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_queue_control&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;блок управления очередью&lt;/a&gt;&lt;/span&gt;.
&lt;span class=&quot;important&quot;&gt;pMsg&lt;/span&gt; - указатель на буфер в памяти, где будут храниться сами указатели на сообщения.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение6&quot; id=&quot;переопределение6&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

Возможно переопределение только указателя на сообщение &lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_msg&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_MSG&lt;/a&gt;&lt;/span&gt;&lt;/span&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://wiki.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;OST_QUEUE&quot; [7231-7978] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_squeue&quot; id=&quot;ost_squeue&quot;&gt;OST_SQUEUE&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Очередь коротких однобайтовых сообщений.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение7&quot; id=&quot;определение7&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    OST_QUEUE_CONTROL Q;
    OST_SMSG &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;pSMsg;             &lt;span class=&quot;co1&quot;&gt;// Указатель на очередь сообщений&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; OST_SQUEUE;&lt;/pre&gt;
&lt;p&gt;
&lt;span class=&quot;important&quot;&gt;Q&lt;/span&gt; - &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_queue_control&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;блок управления очередью&lt;/a&gt;&lt;/span&gt;.
&lt;span class=&quot;important&quot;&gt;pSMsg&lt;/span&gt; - указатель на буфер в памяти, где будут храниться теля коротких однобайтовых сообщений.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение7&quot; id=&quot;переопределение7&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

Возможно переопределение только тип короткого сообщения &lt;span class=&quot;important&quot;&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types#ost_smsg&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;OST_SMSG&lt;/a&gt;&lt;/span&gt;&lt;/span&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://wiki.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;OST_SQUEUE&quot; [7979-8778] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_smsg&quot; id=&quot;ost_smsg&quot;&gt;OST_SMSG&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

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

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение8&quot; id=&quot;определение8&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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; OST_UINT8   OST_SMSG;&lt;/pre&gt;
&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение8&quot; id=&quot;переопределение8&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

Этот тип можно переопределить, задав константу &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_SMSG_TYPE&lt;/a&gt;&lt;/span&gt; в файле &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OSAcfg.h&lt;/a&gt;&lt;/span&gt;:

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#define OS_SMSG_TYPE unsigned long&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Допустимы любые перечислимые типы. Следует помнить, что это сообщение не имеет отдельного блока управления или дескриптора, который бы содержал информацию о состоянии сообщения (свободно/занято). Эта информация в самом сообщении: =0 - свободно, !=0 - занято.
&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://wiki.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;OST_SMSG&quot; [8779-9892] --&gt;
&lt;h3&gt;&lt;a name=&quot;ost_task_pointer&quot; id=&quot;ost_task_pointer&quot;&gt;OST_TASK_POINTER&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

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

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение9&quot; id=&quot;определение9&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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; OS_TASKS_BANK OST_TCB &lt;span class=&quot;sy2&quot;&gt;*&lt;/span&gt;  OST_TASK_POINTER;&lt;/pre&gt;
&lt;p&gt;
Следует обратить внимание, что изпользуется префикс &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_TASKS_BANK.&lt;/a&gt;&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;переопределение9&quot; id=&quot;переопределение9&quot;&gt;Переопределение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&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://wiki.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;OST_TASK_POINTER&quot; [9893-10588] --&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;/div&gt;
&lt;!-- SECTION &quot;Счетчики таймеров&quot; [10589-10637] --&gt;
&lt;h3&gt;&lt;a name=&quot;os_dtimer_type&quot; id=&quot;os_dtimer_type&quot;&gt;OS_DTIMER_TYPE&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Тип счетчика динамического таймера.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение10&quot; id=&quot;определение10&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#if   OS_DTIMER_SIZE == 1&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_DTIMER_TYPE OST_UINT8&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#elif OS_DTIMER_SIZE == 2&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_DTIMER_TYPE OST_UINT16&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#elif OS_DTIMER_SIZE == 4&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_DTIMER_TYPE OST_UINT32&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#endif&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Если константа &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_DTIMER_SIZE&lt;/a&gt;&lt;/span&gt; не определена, то по умолчанию она будет равна &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_TIMER_SIZE.&lt;/a&gt;&lt;/span&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://wiki.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;OS_DTIMER_TYPE&quot; [10638-11213] --&gt;
&lt;h3&gt;&lt;a name=&quot;os_stimer_type&quot; id=&quot;os_stimer_type&quot;&gt;OS_STIMER_TYPE&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Тип статического таймера.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение11&quot; id=&quot;определение11&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#if   OS_STIMER_SIZE == 1&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_STIMER_TYPE OST_UINT8&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#elif OS_STIMER_SIZE == 2&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_STIMER_TYPE OST_UINT16&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#elif OS_STIMER_SIZE == 4&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_STIMER_TYPE OST_UINT32&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#endif&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Если константа &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_STIMER_SIZE&lt;/a&gt;&lt;/span&gt; не определена, то по умолчанию она будет равна &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_TIMER_SIZE.&lt;/a&gt;&lt;/span&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://wiki.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;OS_STIMER_TYPE&quot; [11214-11771] --&gt;
&lt;h3&gt;&lt;a name=&quot;os_ttimer_type&quot; id=&quot;os_ttimer_type&quot;&gt;OS_TTIMER_TYPE&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Тип таймера в задачах.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение12&quot; id=&quot;определение12&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#if   OS_TTIMER_SIZE == 1&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_TTIMER_TYPE OST_UINT8&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#elif OS_TTIMER_SIZE == 2&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_TTIMER_TYPE OST_UINT16&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#elif OS_TTIMER_SIZE == 4&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_TTIMER_TYPE OST_UINT32&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#endif&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Если константа &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_TTIMER_SIZE&lt;/a&gt;&lt;/span&gt; не определена, то по умолчанию она будет равна &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_TIMER_SIZE.&lt;/a&gt;&lt;/span&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://wiki.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;OS_TTIMER_TYPE&quot; [11772-12318] --&gt;
&lt;h3&gt;&lt;a name=&quot;os_qtimer_type&quot; id=&quot;os_qtimer_type&quot;&gt;OS_QTIMER_TYPE&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Тип таймера в очереди таймеров.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;определение13&quot; id=&quot;определение13&quot;&gt;Определение&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#if   OS_QTIMER_SIZE == 1&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_QTIMER_TYPE OST_UINT8&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#elif OS_QTIMER_SIZE == 2&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_QTIMER_TYPE OST_UINT16&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#elif OS_QTIMER_SIZE == 4&lt;/span&gt;
    &lt;span class=&quot;co2&quot;&gt;#define OS_QTIMER_TYPE OST_UINT32&lt;/span&gt;
&lt;span class=&quot;co2&quot;&gt;#endif&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Если константа &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_QTIMER_SIZE&lt;/a&gt;&lt;/span&gt; не определена, то по умолчанию она будет равна &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;OS_TIMER_SIZE.&lt;/a&gt;&lt;/span&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://wiki.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;OS_QTIMER_TYPE&quot; [12319-] --&gt;</description>
    </item>
    <item rdf:about="http://wiki.pic24.ru/doku.php/osa/ref/description/events_and_priority?rev=1249734285">
        <dc:format>text/html</dc:format>
        <dc:date>2009-08-08T16:24:45+03:00</dc:date>
        <title>OSA : События и приоритетность</title>
        <link>http://wiki.pic24.ru/doku.php/osa/ref/description/events_and_priority?rev=1249734285</link>
        <description>


&lt;h1&gt;&lt;a name=&quot;osa_события_и_приоритетность&quot; id=&quot;osa_события_и_приоритетность&quot;&gt;OSA : События и приоритетность&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;OSA : События и приоритетность&quot; [1-72] --&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;p&gt;
Таким образом, все активные (т.е. созданные сервисом &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_task_create&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_task_create&quot;&gt;OS_Task_Create&lt;/a&gt;&lt;/span&gt;) задачи, работающие в OSA, могут находиться в одном из пяти состояний:
&lt;/p&gt;
&lt;table class = &quot;fpl&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;strong&gt;не создана&lt;/strong&gt;		&lt;/td&gt;
		&lt;td&gt;
 задачи нет в списке активных задач (она либо не создана, либо была удалена)		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;strong&gt;в ожидании&lt;/strong&gt;		&lt;/td&gt;
		&lt;td&gt;
 задача ждет какого-то события		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;strong&gt;в готовности&lt;/strong&gt;		&lt;/td&gt;
		&lt;td&gt;
 задача дождалась своего события, но еще не начала выполняться.		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
 &lt;strong&gt;в работе&lt;/strong&gt;		&lt;/td&gt;
		&lt;td&gt;
 задача непосредственно выполняется		&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;
&lt;strong&gt;приостановлена&lt;/strong&gt;		&lt;/td&gt;
		&lt;td&gt;
задача приостановлена из-вне. Она активна, но не получает управления.		&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Состояния задач&quot; [73-2329] --&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;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; во-первых, произошло то событие, которого она ждет (т.е. стала &lt;strong&gt;готовой&lt;/strong&gt; к выполнению);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; во-вторых, чтобы она стала наиболее приоритетной из готовых.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Все задачи имеют приоритет от 0 (самый высокий приоритет) до 7 (самый низкий приоритет). Если к выполнению готовы сразу несколько задач, то первой выполнится та, приоритет которой выше. Если есть несколько готовых задач с одинаковым приоритетом, то они выполнятся последовательно.
&lt;/p&gt;

&lt;p&gt;
События в OSA:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; семафор (&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/services/binary_semaphores&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:services:binary_semaphores&quot;&gt;двоичный&lt;/a&gt; или &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/services/counting_semaphores&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:services:counting_semaphores&quot;&gt;счетный&lt;/a&gt;);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/services/messages&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:services:messages&quot;&gt;сообщение&lt;/a&gt; (указатель на тело сообщения или короткое однобайтовое сообщение);&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/services/flags&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:services:flags&quot;&gt;флаг или комбинация флагов&lt;/a&gt;;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; таймаут (&lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_delay&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_delay&quot;&gt;OS_Delay&lt;/a&gt;&lt;/span&gt;, &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/services/timers&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:services:timers&quot;&gt;OS_Stimer_Wait или OS_Dtimer_Wait&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; любое выражение перечислимого типа.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

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

&lt;p&gt;
Например:

&lt;/p&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;    OS_Cond_Wait&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TMR1IF&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;            &lt;span class=&quot;co1&quot;&gt;// Ждем установки флага TMR1IF&lt;/span&gt;
    или
    OS_Cond_Wait&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ReadADC&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu19&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;128&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;  &lt;span class=&quot;co1&quot;&gt;// Ждем, когда напряжение на входе АЦП будет &amp;gt; Vdd/2&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Для ожидания событий пятого типа есть два системных сервиса &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_wait&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_wait&quot;&gt;OS_Wait&lt;/a&gt;&lt;/span&gt; и &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_wait_to&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_wait_to&quot;&gt;OS_Wait_TO&lt;/a&gt;&lt;/span&gt;, которые описаны в разделе &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/services/system_services&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:services:system_services&quot;&gt;системные сервисы&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;События и приоритетность&quot; [2330-4877] --&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;
Бывает так, что одного и того же события одновременно ожидают две или более задач. Например, они ждут освобождения какого-нибудь ресурса (USART или доступ к внешней EEPROM). Как поведет себя система в этом случае? После  того, как событие произойдет, все задачи, ожидающие это событие, перейдут в состояние готовности. Управление же получит задача с наиболее высоким приоритетом. Если после того, как эта задача отработает, событие сбрасывается (например, все задачи ожидали включения семафора, а та задача, которая получила управление, его сбросила), то все остальные задачи опять переходят в состояние ожидания.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Состязания приоритетов&quot; [4878-] --&gt;</description>
    </item>
    <item rdf:about="http://wiki.pic24.ru/doku.php/osa/ref/description/intro?rev=1244064241">
        <dc:format>text/html</dc:format>
        <dc:date>2009-06-04T01:24:01+03:00</dc:date>
        <title>OSA : ОПИСАНИЕ</title>
        <link>http://wiki.pic24.ru/doku.php/osa/ref/description/intro?rev=1244064241</link>
        <description>


&lt;h2&gt;&lt;a name=&quot;osa_описание&quot; id=&quot;osa_описание&quot;&gt;OSA : ОПИСАНИЕ&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/project&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:project&quot;&gt;Проект&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/scheduler&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:scheduler&quot;&gt;Планировщик&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/events_and_priority&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:events_and_priority&quot;&gt;События и приоритетность&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/data_types&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:data_types&quot;&gt;Типы данных&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
</description>
    </item>
    <item rdf:about="http://wiki.pic24.ru/doku.php/osa/ref/description/predefined?rev=1291810455">
        <dc:format>text/html</dc:format>
        <dc:date>2010-12-08T15:14:15+03:00</dc:date>
        <title>OSA : Предопределенные константы</title>
        <link>http://wiki.pic24.ru/doku.php/osa/ref/description/predefined?rev=1291810455</link>
        <description>


&lt;h2&gt;&lt;a name=&quot;osa_предопределенные_константы&quot; id=&quot;osa_предопределенные_константы&quot;&gt;OSA : Предопределенные константы&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  Constant name  &lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;  Notes  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot; colspan=&quot;2&quot;&gt;  &lt;br/&gt;
  &lt;strong&gt;System&lt;/strong&gt;&lt;br/&gt;
 &lt;br/&gt;
   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_VERISON__&lt;/span&gt;       &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Текущая версия OSA в формате &lt;span class=&quot;important&quot;&gt;ГГММДД&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;important&quot;&gt;ГГ&lt;/span&gt;, &lt;span class=&quot;important&quot;&gt;ММ&lt;/span&gt; и &lt;span class=&quot;important&quot;&gt;ДД&lt;/span&gt; - год, месяц и день выпуска&lt;br/&gt;
 Поддается сравнению (каждая последующая больше предыдущей) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot; colspan=&quot;2&quot;&gt;  &lt;br/&gt;
  &lt;strong&gt;Chip type&lt;/strong&gt; &lt;br/&gt;
 &lt;br/&gt;
    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC12__&lt;/span&gt;         &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  PIC10 or 12-bit PIC12                &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC16__&lt;/span&gt;         &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  PIC16 or 14-bit PIC12                &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC16E__&lt;/span&gt;        &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  PIC12F1xxx or PIC16F1xxx             &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC18__&lt;/span&gt;         &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                                       &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_DSPIC__&lt;/span&gt;         &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  dsPIC30 or dsPIC33                   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC24__&lt;/span&gt;         &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  PIC24F, PIC24FK or PIC24H            &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC24F__&lt;/span&gt;        &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                                       &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC24FK__&lt;/span&gt;       &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                                       &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC24H__&lt;/span&gt;        &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                                       &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_DSPIC30__&lt;/span&gt;       &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                                       &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_DSPIC33__&lt;/span&gt;       &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                                       &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_AVR__&lt;/span&gt;           &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  8-bit AVR                            &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_STM8__&lt;/span&gt;          &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                                       &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot; colspan=&quot;2&quot;&gt;  &lt;br/&gt;
  &lt;strong&gt;Compiler type&lt;/strong&gt;&lt;br/&gt;
 &lt;br/&gt;
    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_CCS__      &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  CCS PICC                             &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_HTPICC__   &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  HiTech PICC STD                      &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_HTPICC_PRO__ &lt;/span&gt;   &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  HiTech PICC PRO                      &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row21&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_MPLABC__     &lt;/span&gt;   &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  MPLABC18 or MPLABC30                 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row22&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_MIKROC__     &lt;/span&gt;   &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  MikroC PRO (ver 3.0 and greater)     &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row23&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_WINAVR__     &lt;/span&gt;   &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  WinVAR                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row24&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_IAR__        &lt;/span&gt;   &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  IAR                                  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row25&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_COSMIC__     &lt;/span&gt;   &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  Cosmic                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row26&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot; colspan=&quot;2&quot;&gt;  &lt;br/&gt;
  &lt;strong&gt;Chip and compiler&lt;/strong&gt;&lt;br/&gt;
 &lt;br/&gt;
   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row27&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC12_HTPICC__     &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row28&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC16_CCS__        &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row29&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC16_HTPICC__     &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row30&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC16_MIKROC__     &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row31&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC16E_HTPICC_PRO__&lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row32&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC18_HTPICC__     &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row33&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC18_MPLABC__     &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row34&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC18_MPLABC_EXT__ &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row35&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC18_CCS__        &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row36&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC18_MIKROC__     &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row37&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_PIC24_MPLABC__     &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  Same as &lt;span class=&quot;important&quot;&gt;__&lt;acronym title=&quot;Operating System&quot;&gt;OS&lt;/acronym&gt;_DSPIC_MPLABC__&lt;/span&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row38&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_DSPIC_MPLABC__     &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  Same as &lt;span class=&quot;important&quot;&gt;__&lt;acronym title=&quot;Operating System&quot;&gt;OS&lt;/acronym&gt;_PIC24_MPLABC__&lt;/span&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row39&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_AVR_WINAVR__       &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row40&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_AVR_IAR__          &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row41&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; &lt;span class=&quot;important&quot;&gt;__OSA_STM8_COSMIC__      &lt;/span&gt;     &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;                               &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;/div&gt;
</description>
    </item>
    <item rdf:about="http://wiki.pic24.ru/doku.php/osa/ref/description/project?rev=1289823262">
        <dc:format>text/html</dc:format>
        <dc:date>2010-11-15T15:14:22+03:00</dc:date>
        <title>OSA : Проект</title>
        <link>http://wiki.pic24.ru/doku.php/osa/ref/description/project?rev=1289823262</link>
        <description>


&lt;h2&gt;&lt;a name=&quot;osa_проект&quot; id=&quot;osa_проект&quot;&gt;OSA : Проект&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;OSA : Проект&quot; [1-32] --&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;

Для использования OSA в своем приложении нужно:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создать проект, используя IDE оболочку. В него, помимо файлов самой программы, включить файл osa.c (он содержит определения всех системных переменных и системных функций).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В папке с файлами программы создать файл системной конфигурации &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;osacfg.h&lt;/a&gt;&lt;/span&gt;, где задать параметры использования системы (в самом простом случае этот файл может быть пустым). Подробнее об этом файле см. &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;Конфигурация OSAcfg.h&lt;/a&gt;. Этот файл можно создать с помощью утилиты &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/download/intro&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:download:intro&quot;&gt;OSAcfg_Tool&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Во все файлы, где есть вызовы сервисов OSA, включить файл osa.h.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В параметрах проекта указать пути &amp;quot;Include Search Path&amp;quot;:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; путь к файлу &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;osacfg.h&lt;/a&gt;&lt;/span&gt; текущего проекта;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; путь к файлу osa.h.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В самом начале программы (в фукнции main()) вызвать фукнцию инициализации системы &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_init&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_init&quot;&gt;OS_Init&lt;/a&gt;()&lt;/span&gt;, а в самом конце - вызвать сервис &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_run&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_run&quot;&gt;OS_Run&lt;/a&gt;()&lt;/span&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Создание проекта&quot; [33-1707] --&gt;
&lt;h2&gt;&lt;a name=&quot;примечания_для_различных_ide_и_платформ&quot; id=&quot;примечания_для_различных_ide_и_платформ&quot;&gt;Примечания для различных IDE и платформ&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Примечания для различных IDE и платформ&quot; [1708-1792] --&gt;
&lt;h3&gt;&lt;a name=&quot;mplab&quot; id=&quot;mplab&quot;&gt;MPLAB&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; файл osa.c добавляется правым щелчком мышки в окне проекта (открывается через меню &amp;quot;View/Project&amp;quot;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Include-пути задаются в параметрах проекта: меню &amp;quot;Project/Build options/Project…&amp;quot;, вкладка &amp;quot;Directories&amp;quot;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;MPLAB&quot; [1793-2132] --&gt;
&lt;h3&gt;&lt;a name=&quot;mplab_и_ht-picc&quot; id=&quot;mplab_и_ht-picc&quot;&gt;MPLAB и HT-PICC&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ранние версии плагинов HTPICC длч MPLAB&amp;#039;а не позволяли вводить относительные пути, а только абсолютные (т.е. не &amp;quot;..\..\&amp;quot;, а &amp;quot;c:\osa&amp;quot;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;для PRO-версии компилятора&lt;/strong&gt;: Чтобы компилятор правильно строил дерево вызовов функций, все создаваемые задачи должны быть объявлены в main() сервисом &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_task_define&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_task_define&quot;&gt;OS_Task_Define&lt;/a&gt;&lt;/span&gt;()&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; main &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    OS_Init&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    ...
    &lt;span class=&quot;me1&quot;&gt;OS_Task_Define&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_Buttons&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    OS_Task_Define&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_LEDs&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    OS_Task_Define&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_LCD&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    ...
    &lt;span class=&quot;me1&quot;&gt;OS_Task_Create&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_Buttons&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    OS_Task_Create&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_LEDs&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    OS_Task_Create&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_LCD&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;!-- SECTION &quot;MPLAB и HT-PICC&quot; [2133-2983] --&gt;
&lt;h3&gt;&lt;a name=&quot;mplab_и_mplab_c18&quot; id=&quot;mplab_и_mplab_c18&quot;&gt;MPLAB и Mplab C18&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Требуется указать путь к библиотекам: меню &amp;quot;Project/Build options/Progect…&amp;quot;, вкладка &amp;quot;Directories&amp;quot;, пункт &amp;quot;Library Search Path&amp;quot;. Там ввести путь для MCC18 (например, c:\mcc18\lib).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; там же в параметрах проекта выбрать вкладку &amp;quot;MPLAB C18&amp;quot;, категория &amp;quot;Optimization&amp;quot; и снять галочку (если стоит) напротив пункта &amp;quot;Procedural absraction&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Не забыть добавить файл скрипта для линкера: правой кнопкой на папке &amp;quot;Linker Script&amp;quot; в окне &amp;quot;Project&amp;quot; и выбрать скрипт для требуемого контроллера из папки &amp;quot;MCC18\lkr&amp;quot;. (Для работы в extended-режиме имя файла скрипта должно иметь суффикс &amp;#039;e&amp;#039;)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;MPLAB и Mplab C18&quot; [2984-3913] --&gt;
&lt;h3&gt;&lt;a name=&quot;mplab_и_mplab_c30&quot; id=&quot;mplab_и_mplab_c30&quot;&gt;MPLAB и Mplab C30&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; в параметрах проекта выбрать вкладку &amp;quot;MPLAB C30&amp;quot;, категория &amp;quot;Optimization&amp;quot; и снять галочку (если стоит) напротив пункта &amp;quot;Procedural absraction&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;MPLAB и Mplab C30&quot; [3914-4170] --&gt;
&lt;h3&gt;&lt;a name=&quot;ccs&quot; id=&quot;ccs&quot;&gt;CCS&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; файл osa.c в проект включать &lt;strong&gt;не нужно!&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Чтобы компилятор правильно строил дерево вызовов функций, все создаваемые задачи должны быть объявлены в main() сервисом &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_task_define&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_task_define&quot;&gt;OS_Task_Define&lt;/a&gt;&lt;/span&gt;()&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; main &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    OS_Init&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    ...
    &lt;span class=&quot;me1&quot;&gt;OS_Task_Define&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_Buttons&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    OS_Task_Define&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_LEDs&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    OS_Task_Define&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_LCD&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    ...
    &lt;span class=&quot;me1&quot;&gt;OS_Task_Create&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_Buttons&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    OS_Task_Create&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_LEDs&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
    OS_Task_Create&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Task_LCD&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;!-- SECTION &quot;CCS&quot; [4171-4810] --&gt;
&lt;h3&gt;&lt;a name=&quot;mikroc_pro_ide&quot; id=&quot;mikroc_pro_ide&quot;&gt;mikroC PRO IDE&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Файл osa.c добавляется в проект через меню &amp;quot;Project/Add File To Project…&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Include-пути задаются через меню &amp;quot;Project/Edit Search Paths…&amp;quot;. В открывшемся окне есть два списка путей: Source Files и Header Files. нам нужен список Header Files. Над ним есть кнопка с зеленым плюсиком, давим ее и добавляем нужные пути.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Линкер должен быть проинформирован о том, что функции, которые предполагается использовать как задачи, будут вызываться не напрямую, а через указатель:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;cpp code cpp&quot; style=&quot;font-family:monospace;&quot;&gt;&lt;span class=&quot;co2&quot;&gt;#pragma funcall main Task_Buttons       // Говорим компилятору, что Task_Button будет&lt;/span&gt;
                                        &lt;span class=&quot;co1&quot;&gt;// вызываться через указатель&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt; Task_Buttons &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;void&lt;/span&gt;&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;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;!-- SECTION &quot;mikroC PRO IDE&quot; [4811-5871] --&gt;
&lt;h3&gt;&lt;a name=&quot;avr_studio_и_winavr&quot; id=&quot;avr_studio_и_winavr&quot;&gt;AVR Studio и WinAVR&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Пункт меню &amp;quot;Project/New Project&amp;quot;:&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выбираем Project type: AVR GCC&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; выбираем путь и имя проекта, давим Next&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; в следующем окне выбираем контроллер и тип отладочного средства (Debug Platform), давим Finish&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; в окне проекта (AVR GCC) правой кнопкой мышки нажимаем на папке &amp;quot;Source Files&amp;quot; и выбираем пункт &amp;quot;Add Existing Source File(s)…&amp;quot; и добавляем файл osa.c&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; include-пути задаются через меню &amp;quot;Project/Configuration options&amp;quot;, вкладка &amp;quot;Include Directories&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;AVR Studio и WinAVR&quot; [5872-6588] --&gt;
&lt;h3&gt;&lt;a name=&quot;iar&quot; id=&quot;iar&quot;&gt;IAR&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создаем проект C (меню &amp;quot;Project/Create New Project…&amp;quot;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; файл osa.c добавляется через меню &amp;quot;Project/Add files…&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; include-пути задаются в параметрах проекта: меню &amp;quot;Project/Options&amp;quot;, категория &amp;quot;C/C++ compiler&amp;quot;, вкладка &amp;quot;preprocessor&amp;quot;, в поле &amp;quot;Additional include directories&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; там же в параметрах проекта во вкладке &amp;quot;Optimization&amp;quot; убрать галочку с пункта &amp;quot;Cross call&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;IAR&quot; [6589-7132] --&gt;
&lt;h3&gt;&lt;a name=&quot;iar_stm8&quot; id=&quot;iar_stm8&quot;&gt;IAR STM8&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В добавок ко всем требованиям, описанным выше в пункте &amp;quot;IAR&amp;quot;, к проекту дорбавить файл &amp;quot;osa\port\stm8\osa_stm_iar.s&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;IAR STM8&quot; [7133-7340] --&gt;
&lt;h3&gt;&lt;a name=&quot;stvd_и_stm8&quot; id=&quot;stvd_и_stm8&quot;&gt;STVD и STM8&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; проект создается через меню &amp;quot;File/New Workspace&amp;quot;. &lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; В открывшемся окне выбрать &amp;quot;Create workspace and Porject&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; далее задаем имя рабочего пространства (workspace) и путь&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; в следующем окне задаем имя проекта, путь, и выбираем компилятор: Raiconance или Cosmic&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; выбираем контроллера&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; нажимаем правую кнопку мышки на папке Source в окне Workspace, выбираем пункт &amp;quot;Add Files To Folder…&amp;quot; и выбираем файл osa.c&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; include-пути задаются в параметрах проекта: меню &amp;quot;Project/Settings&amp;quot;, вкладка &amp;quot;C compiler&amp;quot;, категория &amp;quot;Preprocessor&amp;quot;, пункт &amp;quot;Additional include directories&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;STVD и STM8&quot; [7341-8237] --&gt;
&lt;h3&gt;&lt;a name=&quot;raisonance_и_stm8&quot; id=&quot;raisonance_и_stm8&quot;&gt;Raisonance и STM8&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; создаем новый проект через меню &amp;quot;Project/New project&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; файл osa.c добавляется через меню &amp;quot;Project/Add Item…&amp;quot;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; include-пути задаются в параметрах проекта: меню &amp;quot;Projetc/properties&amp;quot;, пункт &amp;quot;Application Optios&amp;quot;, подпункт &amp;quot;Directories&amp;quot;. К имеющимся в списке добавить два: путь к osa.h и путь к &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/appendix/configuration&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:appendix:configuration&quot;&gt;osacfg.h&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_uparrow&quot;&gt;
  &lt;a href=&quot;#&quot; title=&quot;Наверх&quot;&gt;
    &lt;img src=&quot;http://wiki.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;Raisonance и STM8&quot; [8238-] --&gt;</description>
    </item>
    <item rdf:about="http://wiki.pic24.ru/doku.php/osa/ref/description/scheduler?rev=1295358477">
        <dc:format>text/html</dc:format>
        <dc:date>2011-01-18T16:47:57+03:00</dc:date>
        <title>OSA : Планировщик</title>
        <link>http://wiki.pic24.ru/doku.php/osa/ref/description/scheduler?rev=1295358477</link>
        <description>


&lt;h2&gt;&lt;a name=&quot;osa_планировщик&quot; id=&quot;osa_планировщик&quot;&gt;OSA : Планировщик&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Сервис &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_run&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_run&quot;&gt;OS_Run&lt;/a&gt;()&lt;/span&gt; - это макрос, который содержит бесконечный цикл с работой планировщика. Этот сервис вызывается в самом конце функции main() и полностью передает управление ядру OSA. Планировщик отвечает за проверку готовности задач к выполнению, определение задачи с наивысшим приоритетом (из готовых) и за запуск задач. Вызов сервиса &lt;span class=&quot;important&quot;&gt;&lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/allservices/os_run&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:allservices:os_run&quot;&gt;OS_Run&lt;/a&gt;&lt;/span&gt;() может располагаться только в одном месте программы, т.к. он содержит глобальные метки для возврата из задач.
&lt;/p&gt;

&lt;p&gt;
Планировщик по очереди перебирает все активные задачи, проверяя их готовность и одновременно вычисляя задачу с высшим приоритетом. Если была найдена одна или несколько готовых задач, то из них выбирается та, у которой приоритет выше, и ей передается управление. Подробнее о приоритетах см. &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/description/events_and_priority&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:description:events_and_priority&quot;&gt;&amp;quot;События и проиритетность&amp;quot;&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Исключение составляет работа в &lt;a href=&quot;http://wiki.pic24.ru/doku.php/osa/ref/services/critical_sections&quot; class=&quot;wikilink1&quot; title=&quot;osa:ref:services:critical_sections&quot;&gt;критической секции&lt;/a&gt;. OSA допускает передачу управления планировщику из задачи, выполняющейся в критической секции. Планировщик, определив, что находится в критической секции, не осуществляет поиск готовых задач, а сразу же передает управление последней выполнявшейся задаче.
&lt;/p&gt;

&lt;/div&gt;
</description>
    </item>
</rdf:RDF>
