Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-37616
~GaMeRd~
2003-12-28 14:31
2004.01.13
работа с TStrings


14-37884
KSergey
2003-12-22 12:29
2004.01.13
Где найти библиотеку HiperString?


1-37678
Merlot
2003-12-25 17:27
2004.01.13
PopUpMenu


3-37580
MaxDDinc
2003-12-13 20:52
2004.01.13
Теряются данные в локальной БД после сбоя питания


6-37831
Cerber
2003-11-10 20:55
2004.01.13
Wininet





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский