<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.oberon.org/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="https://wiki.oberon.org/feed.php">
        <title>Оберон / Компонентный Паскаль / Вики ob:o7:example</title>
        <description></description>
        <link>https://wiki.oberon.org/</link>
        <image rdf:resource="https://wiki.oberon.org/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-10T14:31:16+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/array?rev=1775193437&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/conversion?rev=1775193279&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/cycles?rev=1775193537&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/elementary?rev=1775193236&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/export?rev=1775193348&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/get?rev=1775193050&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/import?rev=1775193260&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/inttostring?rev=1775193636&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/math?rev=1775193526&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/modules?rev=1775193198&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/pccontrol?rev=1775193621&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/put?rev=1775193293&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/realtostring?rev=1775193650&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/record?rev=1775193467&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.oberon.org/ob/o7/example/set?rev=1775193301&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.oberon.org/lib/tpl/dokuwiki/images/favicon.ico">
        <title>Оберон / Компонентный Паскаль / Вики</title>
        <link>https://wiki.oberon.org/</link>
        <url>https://wiki.oberon.org/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/array?rev=1775193437&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:17:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Массивы</title>
        <link>https://wiki.oberon.org/ob/o7/example/array?rev=1775193437&amp;do=diff</link>
        <description>Массивы

Любой элементарный тип возможно разместить в массиве.

Нумерация элементов начинается с нуля.

Длина массива определяется с помощью процедуры LEN</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/conversion?rev=1775193279&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:14:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Преобразование типов</title>
        <link>https://wiki.oberon.org/ob/o7/example/conversion?rev=1775193279&amp;do=diff</link>
        <description>Преобразование типов

Преобразование элементарных типов возможно через несколько встроенных функций:


FLOOR(x)  REAL                 INTEGER          округлить до меньшего
FLT(x)    INTEGER              REAL             тождественно
ORD(x)    CHAR, BOOLEAN, SET   INTEGER          порядковый номер x
CHR(x)    INTEGER              CHAR             литера с порядковым номером x…</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/cycles?rev=1775193537&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:18:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Циклы WHILE, REPEAT, FOR</title>
        <link>https://wiki.oberon.org/ob/o7/example/cycles?rev=1775193537&amp;do=diff</link>
        <description>Циклы WHILE, REPEAT, FOR


b := 0
WHILE b &lt;= 10 DO
   Send(b);
   INC(b)
END;



b := 0
REPEAT
   Send(b);
   INC(b)
UNTIL b &gt; 10;



FOR b := 0 TO 10 DO
   Send(b)
END 


Учебник по программированию микроконтроллеров</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/elementary?rev=1775193236&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:13:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Элементарные типы</title>
        <link>https://wiki.oberon.org/ob/o7/example/elementary?rev=1775193236&amp;do=diff</link>
        <description>Элементарные типы

В языке Оберон последней редакции ( дата/версия )поддерживается шесть элементарных типов.

В компиляторе O7 они имеют следующую разрядность для 32-битных микроконтроллеров.</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/export?rev=1775193348&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:15:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Экспорт</title>
        <link>https://wiki.oberon.org/ob/o7/example/export?rev=1775193348&amp;do=diff</link>
        <description>Экспорт

Чтобы константой, переменной или процедурой было возможно воспользоваться в другом модуле, который его импортирует, необходимо поставить отметку об экспорте</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/get?rev=1775193050&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:10:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Чтение данных из регистра</title>
        <link>https://wiki.oberon.org/ob/o7/example/get?rev=1775193050&amp;do=diff</link>
        <description>Чтение данных из регистра

Управление микроконтроллером осуществляет через операции записи и чтения значений регистров.

Для чтения значений примеряется процедура</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/import?rev=1775193260&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:14:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Импорт модулей</title>
        <link>https://wiki.oberon.org/ob/o7/example/import?rev=1775193260&amp;do=diff</link>
        <description>Импорт модулей

Импорт модулей для использования экспортированных процедур, переменных, типов и констант осуществляется в секции IMPORT. Через зяпятую указываются названия модулей.</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/inttostring?rev=1775193636&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:20:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Преобразование целого числа в строку</title>
        <link>https://wiki.oberon.org/ob/o7/example/inttostring?rev=1775193636&amp;do=diff</link>
        <description>Преобразование целого числа в строку


  PROCEDURE IntToString (x: INTEGER; VAR s: ARRAY OF CHAR): INTEGER;
    VAR j, k: INTEGER; ch: CHAR; a: ARRAY 32 OF CHAR;
  BEGIN
    IF x = 0 THEN s := &quot;0&quot; ELSE
      IF x &lt; 0 THEN s[0] := &quot;-&quot;; k := 1; x := -x ELSE k := 0 END;
      j := 0;
      REPEAT
        a[j] := CHR(x MOD 10 + ORD(&quot;0&quot;)); x := x DIV 10; INC(j)
      UNTIL x = 0;
      REPEAT DEC(j); ch := a[j]; s[k] := ch; INC(k) UNTIL j = 0;
      s[k] := 0X
    END;
    RETURN k
  END IntToString;…</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/math?rev=1775193526&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:18:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Математические выражения</title>
        <link>https://wiki.oberon.org/ob/o7/example/math?rev=1775193526&amp;do=diff</link>
        <description>Математические выражения

Если микроконтроллер не имеет аппаратной поддержки вычисления чисел с плавающей точкой, то для компиляции доступна только целочисленная арифметика. Она состоит из таких операций как сложение (</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/modules?rev=1775193198&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:13:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Модули</title>
        <link>https://wiki.oberon.org/ob/o7/example/modules?rev=1775193198&amp;do=diff</link>
        <description>Модули

Оберон основан на концепции модулей. Модуль — единица компиляции и единица сборки.

Модуль имеет название, которое состоит из одного слова, например</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/pccontrol?rev=1775193621&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:20:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Передача данных между МК и ПК</title>
        <link>https://wiki.oberon.org/ob/o7/example/pccontrol?rev=1775193621&amp;do=diff</link>
        <description>Передача данных между МК и ПК

Если подключить к микроконтроллеру драйвер L293D, то возможно управлять мотором, путем создания разных или одинаковых сигналов на двух выводах Input 1/2. В этом примере управляющие каналы драйвера подключены к выводам PC14 и PC15.</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/put?rev=1775193293&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:14:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Запись значения в регистр</title>
        <link>https://wiki.oberon.org/ob/o7/example/put?rev=1775193293&amp;do=diff</link>
        <description>Запись значения в регистр

Управление микроконтроллером осуществляет через операции записи и чтения значений регистров.

Для записи значения примеряется процедура</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/realtostring?rev=1775193650&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:20:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Преобразование действительного числа в строку</title>
        <link>https://wiki.oberon.org/ob/o7/example/realtostring?rev=1775193650&amp;do=diff</link>
        <description>Преобразование действительного числа в строку


	PROCEDURE RealToString (x: REAL; VAR s: ARRAY OF CHAR);
		VAR i, j, p: INTEGER; a: ARRAY 32 OF CHAR;
	BEGIN
		IntToString(FLOOR(x), s);
		i := 0;
		WHILE s[i] # 0X DO INC(i) END;
		s[i] := &quot;.&quot;; INC(i);
		p := FLOOR(x*100.0) MOD 100;
		IF p = 0 THEN
			s[i] := &quot;0&quot;; INC(i);
			s[i] := &quot;0&quot;; INC(i)
		ELSE
			IntToString(p, a);
			j := 0; WHILE a[j] # 0X DO INC(j); END;
			IF j = 1 THEN
				s[i] := &quot;0&quot;; INC(i)
			END;
			j := 0;
			WHILE a[j] # 0X DO s…</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/record?rev=1775193467&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:17:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Объявление записей</title>
        <link>https://wiki.oberon.org/ob/o7/example/record?rev=1775193467&amp;do=diff</link>
        <description>Объявление записей

Оберон поддерживает составные типы данных, которые называются записи RECORD.


MODULE ExamplesRecord1;

	VAR pos: RECORD x, y: INTEGER END;

BEGIN

	pos.x := 70;
	pos.y := 75;

END ExamplesRecord1.</description>
    </item>
    <item rdf:about="https://wiki.oberon.org/ob/o7/example/set?rev=1775193301&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-03T08:15:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Битовые операции</title>
        <link>https://wiki.oberon.org/ob/o7/example/set?rev=1775193301&amp;do=diff</link>
        <description>Битовые операции

В этой заметке мы изложим немного иначе суть статьи Н. Вирта Применение типа SET для управления регистрами.

Тип множества SET позволяет удобно осуществлять битовые операции для управления микроконтроллерами.</description>
    </item>
</rdf:RDF>
