Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

LPT(378h или 379h)? [D5, Win95/98]


VitGun ©   (2003-09-24 18:32:00) 

Делаю драйвер под одно устройство, которое сваял мой куратор. Так вот когда дошел вопрос о считывании данных с LPT-порта, один аспирант с нашей кафедры утверждал, что запись нужно вести по адресу 378h, а чтение с адреса 379h. Вот у меня вопрос: правильно ли это?


N169   (2003-10-31 10:26:00) [1]

Ничего не понимаю.
Попробуйте задать свой вопрос в отдельной ветке.


Tomkat   (2003-10-31 10:05:00) [2]

Hi, masters! Сорри что лезу не в свою ветку, но - наболевший вопрос !

BASEPORT = $378;
STATUSPORT = BASEPORT + 1;
CONTROLPORT = BASEPORT + 2;
$402;
это для вроде для стандартного порта .
А
DATAPORT = BASEPORT + 4;
ECRPORT =BASEPORT + для какого ? Для EPP или ECP?
как читать по выводам dat0-7 ??
Звранее благодарен ...


VitGun   (2003-09-26 11:56:00) [3]

2 All. Спасибо всем, будем разбираться...


N169   (2003-09-26 10:46:00) [4]

Надо бы спросить у аспиранта, к каким линиям порта он подключал девайс, а уж потом будем разбираться с регистрами.
(Всем форумом :)


MegaWolt   (2003-09-26 10:20:00) [5]

Зачем тебе такая морока, из какого адреса считывать, (конечно это полезно знать), я разрабатывал контроллер к компу с работой через LPT порт, при этом я использовал компоненту (не мной разработанная) и на сколько я помню для записи и считывания использовался адрес 378h.


pasha_676   (2003-09-26 09:16:00) [6]

И все эти смешения адреса написаны в вумных книжках. На память все по всем режимам тебе вряд ли кто скажет.


MBo   (2003-09-26 07:58:00) [7]

вот выдержка:

BASEPORT = $378;
STATUSPORT = BASEPORT + 1;
CONTROLPORT = BASEPORT + 2;
DATAPORT = BASEPORT + 4;
ECRPORT =BASEPORT + $402;

В режиме EPP пишу-читаю через DATAPORT. Про ECP -не помню.
$378 + 1, как видишь - порт статуса, а вовсе не данных.


VitGun   (2003-09-25 22:18:00) [8]

2 pasha_676. Нет это я понял. И адрес на машие я знаю. LPT1 - 378h работает в режиме ECP. А вот аспирант уверял меня, что читать мне нужно с 379h, а не с 378h. Даже пример на паскале приводил, что он с 379h читает, потом скрепкой замыкал контакты на LPT и показывал мне как там 126 на 121 меняется, только меня терзают сомнения, что он мне фуфло гонит, вот и прошу совета. Вообще программа делает следующее:
- Через LPT опрашивает датчики. При опросе в порт посылаются 8 бит примерно так xxxxyyyy, где xxxx-номер датчика, yyyy-циклически меняется от 1 до 6(особенности устройства). Затем прога должа считывать данные, расшифровывать(это мелочи) и отображать на выходе температуру. Так вот читал я по адресу 379h и получал нечто вроде этого 10001000100010001000. Сразу скажу, что это лажа, а вот с 378h шли почти правильные данные....


pasha_676   (2003-09-25 09:10:00) [9]

Надо взять книжку про аппаратную работу портов. В книжке написаны смещения от основного адреса, куда что и в какой последовательности писать и откуда что читать. Там довольно много наворочено в зависимости опять же от режима порта. Сам факт что принимают участие порты по нескольким адресам со смещением начиная от базового (какой собственно и показывается в системе и в биосе) - это факт. А какой именно адрес на данной конкретной твоей машине - этого тебе никто не подскажет.


Германн   (2003-09-25 03:05:00) [10]

И да и нет. В зависимости от того, что собс-но нужно читать. И еще - а в каком режиме работает порт?


Наверх

Титульная страница Поиск, карта сайта Написать письмо