Немного технических деталей (Бэйсик 1.0)
В МК-90 пьезодинамик подключён к выводу синхросигнала канала 3 микросхемы последовательного интерфейса КА1835ВГ4. Частота этого сигнала вычисляется по формуле:
Ф = F / (2 * N)
где
F - опорная частота 1600 кГц (не очень точная, так как вырабатывается RC-генератором)
N - число занесённое в регистр коэффициента деления
Команда PLAY записывает в регистр коэффициента деления номиналы из следующей таблицы (ноты 0-40, их 41 штук).
0x08EE, 0x0872, 0x07F9, 0x0783,
0x071A, 0x06B5, 0x0653, 0x05F7,
0x05A4, 0x0551, 0x0506, 0x04BC,
0x0477, 0x0439, 0x03FC, 0x03C2,
0x038D, 0x035A, 0x032A, 0x02FB,
0x02D2, 0x02A8, 0x0281, 0x025E,
0x023D, 0x021D, 0x01FE, 0x01E2,
0x01C7, 0x01AD, 0x0193, 0x017E,
0x0169, 0x0155, 0x0142, 0x012F,
0x0121, 0x010E, 0x00FF, 0x00F1,
0x00E3
Второй операнд команды PLAY определяет количество последовательно переданных байтов и, следовательно, длительность тона, которая вычисляется по формуле:
t = количество_байтов * 8_битов_в_байте / частота_тона




Ответить с цитированием