|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Dmitriy Tarasyuk 2:5020/400 19 Apr 2003 01:04:21 To : Valentin Davydov Subject : Re: Centronix -------------------------------------------------------------------------------- "Valentin Davydov" <val@sqdp.trc-net.co.jp> сообщил/сообщила в новостях следующее: news:b7k28r$1bd1$8@news.pu.ru... > > From: "Dmitriy Tarasyuk" <optimum@optimum.kiev.ua> > > Date: Wed, 16 Apr 2003 09:54:04 +0000 (UTC) > > > >Можно ли управлять выходными сигналами на SPP разъеме принтерного порта: > >например, установить на 3 сек., а затем сбросить D0? К порту подключен не > >принтер. Он используется для включения/выключения релешек. Под DOS програмка > >написана на Паскале. Если нет непосредственной утилиты, то как обратиться к > >порту из программы на Си под FreeBSD? Есть ли API для этого верхнего уровня? > > Есть три API. Один тебе уже сказали (через ж@пу, тьфу, IOCTLи), а другой - > сказать #include <machine/cpufunc.h>, открыть от рута /dev/io и наслаждаться > outb(port,data) прямо как под досом. Hу, и третий - разобраться в так > толком и не документированной "шинной архитектуре драйверов контроллера > параллельного порта" и написать нормальный драйвер, который бы позволял > открывать устройства, скажем, /dev/spp или /dev/epp (собственно, открытие > устройства есть чисто формальное действие, суть которого и заключается в > захвате пресловутой виртуальной драйверной шины), читать/писать туда > данные при помощи обычных read()/write() и т.п. > > Вал. Дав. > > P.S. Если добьёшься успехов на третьем пути - дай знать, интерес есть. Hаписал утилиту, которая позволяет, например, следующее: 1# ppcontrol d01234567 2# ppcontrol D03 1500ms По 1# сбрасывает все выходы данных в низкое состояние (0,2 V). По 2# устанавливает в высокое состояние (3,4 - 5,0V) биты 0 и 3 (остальные остаются без изменений), через полторы секунды восстанавливает их предыдущее состояние (т.е. лог.0 по 1#). Программировал через man ppi. Есть ключ -d который позволяет выбрать устройство (по умолчанию /dev/ppi0). В биосе установил тип порта SPP. Этого вполне хватило сейчас для переключения реле. А в чем проблема, для чего нужен был бы драйвер и файлы устройств epp, ecp? Я не уверен, что полное переключение режимов между spp, bi-directional, epp, ecp безопасно (надежно) реализуемо "на лету" (ECP требует конфигурировать контроллер DMA!). И где может быть использован такой драйвер? Спасибо всем за помощь. Дмитрий. --- ifmail v.2.15dev4 * Origin: Elvisti (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/8676fd5e8f75.html, оценка из 5, голосов 10
|