Форум: "Система";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
ВнизLPT(378h или 379h)? Найти похожие ветки
← →
VitGun (2003-09-24 18:32) [0]Делаю драйвер под одно устройство, которое сваял мой куратор. Так вот когда дошел вопрос о считывании данных с LPT-порта, один аспирант с нашей кафедры утверждал, что запись нужно вести по адресу 378h, а чтение с адреса 379h. Вот у меня вопрос: правильно ли это?
← →
Германн (2003-09-25 03:05) [1]И да и нет. В зависимости от того, что собс-но нужно читать. И еще - а в каком режиме работает порт?
← →
pasha_676 (2003-09-25 09:10) [2]Надо взять книжку про аппаратную работу портов. В книжке написаны смещения от основного адреса, куда что и в какой последовательности писать и откуда что читать. Там довольно много наворочено в зависимости опять же от режима порта. Сам факт что принимают участие порты по нескольким адресам со смещением начиная от базового (какой собственно и показывается в системе и в биосе) - это факт. А какой именно адрес на данной конкретной твоей машине - этого тебе никто не подскажет.
← →
VitGun (2003-09-25 22:18) [3]2 pasha_676. Нет это я понял. И адрес на машие я знаю. LPT1 - 378h работает в режиме ECP. А вот аспирант уверял меня, что читать мне нужно с 379h, а не с 378h. Даже пример на паскале приводил, что он с 379h читает, потом скрепкой замыкал контакты на LPT и показывал мне как там 126 на 121 меняется, только меня терзают сомнения, что он мне фуфло гонит, вот и прошу совета. Вообще программа делает следующее:
- Через LPT опрашивает датчики. При опросе в порт посылаются 8 бит примерно так xxxxyyyy, где xxxx-номер датчика, yyyy-циклически меняется от 1 до 6(особенности устройства). Затем прога должа считывать данные, расшифровывать(это мелочи) и отображать на выходе температуру. Так вот читал я по адресу 379h и получал нечто вроде этого 10001000100010001000. Сразу скажу, что это лажа, а вот с 378h шли почти правильные данные....
← →
MBo (2003-09-26 07:58) [4]вот выдержка:
BASEPORT = $378;
STATUSPORT = BASEPORT + 1;
CONTROLPORT = BASEPORT + 2;
DATAPORT = BASEPORT + 4;
ECRPORT =BASEPORT + $402;
В режиме EPP пишу-читаю через DATAPORT. Про ECP -не помню.
$378 + 1, как видишь - порт статуса, а вовсе не данных.
← →
pasha_676 (2003-09-26 09:16) [5]И все эти смешения адреса написаны в вумных книжках. На память все по всем режимам тебе вряд ли кто скажет.
← →
MegaWolt (2003-09-26 10:20) [6]Зачем тебе такая морока, из какого адреса считывать, (конечно это полезно знать), я разрабатывал контроллер к компу с работой через LPT порт, при этом я использовал компоненту (не мной разработанная) и на сколько я помню для записи и считывания использовался адрес 378h.
← →
N169 (2003-09-26 10:46) [7]Надо бы спросить у аспиранта, к каким линиям порта он подключал девайс, а уж потом будем разбираться с регистрами.
(Всем форумом :)
← →
VitGun (2003-09-26 11:56) [8]2 All. Спасибо всем, будем разбираться...
← →
Tomkat (2003-10-31 10:05) [9]Hi, masters! Сорри что лезу не в свою ветку, но - наболевший вопрос !
BASEPORT = $378;
STATUSPORT = BASEPORT + 1;
CONTROLPORT = BASEPORT + 2;
$402;
это для вроде для стандартного порта .
А
DATAPORT = BASEPORT + 4;
ECRPORT =BASEPORT + для какого ? Для EPP или ECP?
как читать по выводам dat0-7 ??
Звранее благодарен ...
← →
N169 (2003-10-31 10:26) [10]Ничего не понимаю.
Попробуйте задать свой вопрос в отдельной ветке.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c