![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
И да и нет. В зависимости от того, что собс-но нужно читать. И еще - а в каком режиме работает порт?