реклама на сайте
подробности

 
 
> Поддержание постоянной скорости вывода данных при переменной скорости ввода, как реализовать?
drum1987
сообщение Mar 16 2010, 10:03
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 255
Регистрация: 3-02-09
Из: Омск
Пользователь №: 44 323



Доброго времени суток.

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

Ткните пожалуйста на то как люди делают в мире rolleyes.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DMax
сообщение Apr 19 2010, 09:34
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234



Цитата(drum1987 @ Mar 16 2010, 13:18) *
Доброго времени суток.

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

Ткните пожалуйста на то как люди делают в мире rolleyes.gif


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



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th August 2025 - 07:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016