Re: Индивидуальный процессор временных задержек
Немного про задержки.
Во время работы над блоком я столкнулся с проблемой разных тактовых частот и одинаковой задержки.
Если проще, то вот, например, нам нужна задержка сигнала 1 мс. Причём мы не знаем заранее, с какой частотой идёт передача сигнала. Как сделать так, чтобы задержка была 1 мс при передаче на любой частоте? Ведь при частоте передачи 32кГц это будет одно количество тактов, 44.1 кГц - другое, 48кГц - третье, 96кГц - четвёртое.
Я нашёл следующий выход из положения:
Временные задержки задаются не количеством тактовых сигналов, а прямым заданием временного интервала.
Как это работает.
Нам нужна задержка, скажем 1 мс. Есть независимый генератор с постоянной частотой. К нему подключён счётчик, в который заносится величина времени задержки. На выходе счётчика получаем импульс с длительностью нашей 1 мс. Начало импульса запускает второй счётчик входного тактового сигнала. Конец импульса его останавливает. Получился своеобразный частотомер. Во втором счётчике хранится количество импульсов входного сигнала, нужное для задержки на 1 мс. Причём независимо от того, с какой частотой передаётся входной сигнал. Поэтому величина задержки всегда кратна количеству отсчётов входного сигнала и с точностью до одного такта соответствует желаемой задержке. Независимо от частоты передачи звукового сигнала.
|