Инструменты пользователя

Инструменты сайта


ob:o7:generator

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
ob:o7:generator [2026/08/31 17:52] iadenisovob:o7:generator [2026/09/11 23:16] (текущий) iadenisov
Строка 11: Строка 11:
 <code> <code>
 MODULE Random; MODULE Random;
 +
  VAR z: INTEGER; (* global variable *)  VAR z: INTEGER; (* global variable *)
 +
  PROCEDURE Uniform* (): REAL;  PROCEDURE Uniform* (): REAL;
  CONST a = 16807; m = 2147483647; q = m DIV a; r = m MOD a;  CONST a = 16807; m = 2147483647; q = m DIV a; r = m MOD a;
Строка 24: Строка 26:
  RETURN FLT(z) * (1.0 / FLT(m)) (* value of the function *)  RETURN FLT(z) * (1.0 / FLT(m)) (* value of the function *)
  END Uniform;  END Uniform;
 +
  PROCEDURE InitSeed* (seed: INTEGER);  PROCEDURE InitSeed* (seed: INTEGER);
  BEGIN  BEGIN
Строка 39: Строка 42:
 <code> <code>
 MODULE Main; MODULE Main;
 +
  IMPORT SYSTEM,   IMPORT SYSTEM, 
  ARMv7M := MicroARMv7M,   ARMv7M := MicroARMv7M, 
Строка 48: Строка 52:
  VAR  VAR
  delay: INTEGER; ledOn: BOOLEAN;  delay: INTEGER; ledOn: BOOLEAN;
 +
  PROCEDURE Setup;  PROCEDURE Setup;
  BEGIN  BEGIN
Строка 60: Строка 65:
  delay := FLOOR(Rnd.Uniform() * 1000.0);  delay := FLOOR(Rnd.Uniform() * 1000.0);
  END Setup;  END Setup;
- +
  PROCEDURE Loop;  PROCEDURE Loop;
  BEGIN  BEGIN
Строка 80: Строка 85:
  UNTIL FALSE  UNTIL FALSE
  END Loop;  END Loop;
 +
 BEGIN BEGIN
  Setup;  Setup;
Строка 88: Строка 94:
 Получаем результат. Получаем результат.
  
-{{:ob:o7:видео_от_прошивки_на_обероне.mp4|400x300|Демонстрация случайного переключения светодиода}}+{{:ob:o7:randomblink.mp4?600x600|Демонстрация случайного переключения светодиода}}
  
 Последовательность не будет повторяться, если инициализировать генератор от некоторого другого источника. Например, встроенный датчик температуры. Но это уже будет другая статья. Спасибо за чтение. Задавайте вопросы в группе или в телеграм канале: https://t.me/recordinoChat Последовательность не будет повторяться, если инициализировать генератор от некоторого другого источника. Например, встроенный датчик температуры. Но это уже будет другая статья. Спасибо за чтение. Задавайте вопросы в группе или в телеграм канале: https://t.me/recordinoChat
ob/o7/generator.1788198778.txt.gz · Последнее изменение: (внешнее изменение)