Разбираюсь со звуком.
Есть два таймера.
Таймер 1 — на 8 МГц, задержка задаётся в регистре 170022. Плюс для этого таймера есть делитель на степени двойки, задаваемый битами 0..2 регистра 170030 — это «октава». Так, например, для получения ноты A4 («ля» первой октавы, 440 Гц) мы задаём октаву 4 и задержку 1136, получаем: 8000000 / 2/2/2/2/ 1136 ~= 440.14 Гц.
Таймер 2 — на 50 Гц, задержка задаётся в регистре 170024. Используется для контроля длительности ноты.
Громкость 0..3 задаётся битами 4..3 регистра 170030.
Вот так заданы интервалы для нот (3.03):
Обращение к 170026 — включает звук.Код:; Значения задержки первого таймера для нот 162624: DW 000000, 003570, 003414, 003246, 003110, 002754, 002630, 002510 162644: DW 002374, 002264, 002160, 002061, 001764, 000000, 000000, 000000
Обращение к 170032 — переключает состояние звука вкл/выкл.
При этом таймер работает независимо от того, включен ли звук.




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