Цитата(drum1987 @ Mar 16 2010, 13:18)

Доброго времени суток.
При реализации демодулятора столкнулся с проблемой того, что размер выходного буфера изменяется(в зависимости от разности тактовых частот приемника и передатчика) и не равен размеру входного. Сейчас сделал так: большой буфер в который циклически пишется столько отсчетов сколько приходит с демодулятора, а считывается всегда фиксированное число(равное размеру буфера вывода на устройство индикации). Проблема в том, что при тактовой частоте передатчика большей чем у приемника записывается всегда больше чем считывается и запись "догоняет" чтение на второй круг и начинается шлейф ошибок...
Ткните пожалуйста на то как люди делают в мире

Делайте событийно-ориентированную систему: выходной буфер - объект, генерирующий событие "полон на половину", а то, что вычитывает из выходного буфера, ожидает это событие. Конкретная реализация уже зависит от того, какое окружение у вашей программы - здесь могу быть как глобальные флаги в качестве событий, если у вас нет операционки, а могут быть разные нити и какие-то синхронизационные примитивы (кондвары и мутексы, например), если у вас есть операционка. Правда, скорость вывода будет не постоянной, а по мере накопления. Постоянную скорость вывода здесь не сделать по определению.