LINUX.ORG.RU

LPT-порт - чтение когда приходят данные ?


0

0

Вопрос такой: Можно ли организовать процесс чтения данных
из параллельного порта, так что бы читать только тогда,
 когда туда приходят данные.
Что то вроде обработки сигнала.
Есть ли возможность в настройках этого порта привязать
сигнал или функцию обработчик.
Чтоб не в цикле проверять пусть да-же с задержкой,
а что-то вроде асинхронной работы.
Как обработчик сигналов или обработчик прерываний.

Подскажите пожалуйста.
Может есть дака какая по этому поводу, дока по настройке 
параллельного порта.
В форуме уже посмотрел но не понятно многое,
да и слишком кратко.
Если не трудно подскажите.

anonymous
Ответ на: комментарий от yuriy123

Скорее всего работать будет.
Но не ясно вот что:
У параллельного порта есть не знаю как называются
"команды" связанные с определенным Pin.
10pin: ACK  - приход данных; 
       BUSY, PE, SEL,...;
16pin: INIT - reset

У меня приходит сигнал на порт что данные
будут передаваться.  Это ACK.
Мне этот сигнал нужно получить, а
затем читать данные.
Еще нужно понять как перегружать порт, 
(обнулять, reset).

пробую пример из доки по программированию 
lpt-порта.
http://www.linux.org.ru/books/HOWTO/IO-Port-Programming.html#AEN209

Не очень ясно,
запись и чтение осуществляется по одному и тому-же
 адресу: "адрес порта + 0" ?
У меня только так читается.

"...Основной адрес параллельного порта (далее "БАЗА") - 0x3bc 
 для /dev/lp0, 0x378 для /dev/lp1 и 0x278 для
/dev/lp2. ..."
 
Далее в доке используется такая штука: 
"Порт БАЗА+0 (Порт данных) соответственно управляет сигналами данных на 
параллельном порту (от D0 до D7 для битов от 0 до 7, соответствуют
 значения: 0 = 0В, 1 = 5В). 
Запись в этот порт устанавливает соответствующие уровни напряжения на 
контактах разъема принтера. 
При чтении возвращается последнее записанное значение в
стандартном или расширенном режиме записи, или данные 
на разъеме от другого устройства в расширенном режиме
чтения.
"

Не ясно, адрес: (БАЗА+0)  - это и для записи и для чтения данных ?

Я записываю данные затем от туда же читаю получаю то, что записывал,
но разве это правильно? 
Если мне на порт будет подаваться что-то я могу
так же читать или я должен использовать "БАЗА+1"

А как записываль управляющие команды ?

В общем непонятно.

Может кто может кратко, но по порядку объяснить.
Может у кого есть такой опыт программирования 
LPT - порта.

Подскажите если не жалко, пожалуйста.

anonymous
()
Ответ на: комментарий от anonymous

Опыт есть. Старый под ДОС :(

Чего там конкретно куда писать я уже не вспомню. Разбирался по книжке про устройства ПК или что то в этом духе.

Единственное что могу посоветовать см исходники драйверов.

yuriy123
()
Ответ на: комментарий от yuriy123

А какие драйвера смотреть для LPT-порта, serial.c  - ?

 

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.