RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : 6chanel audio?


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Юрий Пронякин
To : Alexey Bezditko
Subj : 6chanel audio?

> > Физический интерфейс чисто последовательный, как COM-порт.
> Тогда не получится: некому для подобного делать цап.

Технически это весьма просто - есть и преобразователи последовательного кода в параллельный (банальные сдвиговые регистры), и у однокриссталок многих есть последовательные порты: даёшь обычную команду чтения из порта - получаешь готовый байт.
А что делать некому - это да...

> > Два байта (в общем случае) не выставить, разве что полтора.
> 1. а почему?

Потому что у стандартного LPT-порта столько битов на выход работают: один байт - данные, и ещё четыре бита - разные управляющие сигналы. В любом справочнике всё подробно описано.

> > А поскольку там предполагается задавать RGB, то двух байт за раз
> > всё равно было бы мало, так что просто выводите три раза по байту.
> Кто его знает... Может, проще полубайт использовать в виде переключателя,
> куда это, а основной байт - в виде амплитуды... Простой логикой можно
> развязать такой выход, в принципе.

Именно это я и предложил. Тебе же нужно по одному байту (256 уровней) на каждый цвет - вот их в три приёма и выведете.

> То есть - каждый выводимый мной by rexxio байт будет тупо висеть на параллельном интерфейсе, пока я не выведу следующий, который и заменит его без какого-либо участия внешней стороны?

Да.

> > Данные стоят на выходе до тех пор, пока ты их сам оттуда не снимешь.
> Cнимешь - то есть просто заменишь следующим байтом, выводимым тем же способом?

Почти. Если я правильно помню (давно уже не занимался этим), выдача данных наружу разрешается одним из тех управляющих битов. Если она разрешена - данные идут так, как ты написал выше. Если запрещена - выход переводится в неопределённое состояние.

> > Работа исключительно асинхронная. Компьютер выставляет данные и строб,
> > что данные готовы. Когда принтер данные прочитал, он выставляет подтверждение.
> Вот... О чём я и спрашивал: нужна ли и есть ли там какая-либо синхронизация...

Принтер выдаёт подтверждение не контроллеру порта, а программе, выводящей данные. Технически это совсем не обязательно (если есть гарантия, что получатель прочитал выставленный байт до того, как он исчез, или если пропуск байта значения не имеет).

> А мне не нужно стробировать - я просто, если могу группой сигнальных линий определять/задавать "адрес цапа", то так и сделал бы...

А как ты без стробирования передашь подряд несколько одинаковых байтов? Хотя да, если получатель каждый раз заведомо другой, то можно и без.

> > Описаний стандартного режима - куда ни плюнь, а от ECP тебе пользы особой не будет,
> > потому что каждый байт всё равно придётся посылать вручную (вам же важны
> > и временнЫе интервалы между посылками).
> Временные, как я понял, я могу задавать, просто выводя очередной байт с тот или иной задержкой.

Да.

> Благо, что вроде был для рекса какой-то пакет с миллисекундными задержками.
> Но ecp и прочая меня интересовали для того, что там якобы есть возможность выставлять два байта параллельно - на входных и выходнных шинах сразу. И читать их, соответственно... Если это не брехня, то было б интересно...

Есть такая возможность. Причём не только в ECP, но и в EPP, и в bidirectional mode. Только вам же для RGB три байта надо вывести.

Mon 20 Mar 2006 21:09 Mozilla/5.0 (OS/2; U; Warp 4.5; ru-RU; rv:1.7.12) Gecko/2005




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.