Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.10;
Скачать: CL | DM;

Вниз

Помогите с LPT портом   Найти похожие ветки 

 
ychenick ©   (2003-11-04 17:28) [0]

Написал программу на паскале со вставками на asm:

{процедура посылки данных в порт}
procedure PortOut(Port: Word; Data: Byte); assembler;
asm
MOV DX,Port;
MOV AL,Data
OUT DX,AL
end;

{функция получения данных из порта}
function PortIn(Port: Word): Byte; assembler;
asm
MOV DX,Port;
IN AL,DX
end;

Удалил драйвера под принтер ( LPT1) с виндовса что б не мишали моей роге.
Припаял к ножкам 2 (Data0 - Output), 20 (Ground) и 10 (ACK-input).
по идее когда я выполню portout($378,255), должны загорется все проводки, беру 2 и 20, пробую напряжение,0 (ноль). Беру 10 и 20, напряжение Ок. Как ведь 10 (ACK) input!
Выполняю portout($378,0) - таже ситуация. Несколько раз проверил так ли припаял, все так как надо, без замыкания и т.п.
Замыкаю 2 и 20, делаю portin($379) получаю 120 тоесть 01111000. Рассоединяю, ситуация в portin($379) не меняется! Какие ошибки, что посоветуете?


 
reticon ©   (2003-11-05 00:22) [1]

а может все-таки косячок в процедуре PortIn?


 
Talla2k ©   (2003-11-05 00:51) [2]

Во-первых надо учитывать ОС (я надеюсь у тебя 9X)!!!
Во-вторых зачем эти вставки asm,ведь в Паскале есть оператор port???
В-третьих(если я не ошибаюсь [просто давно не работал с LPT])после записи в $378 надо в $37a в D0(первый бит) сделать строб,дабы все то что в $378 передалось!!!
И в-четвертых,есть возможность работать с LPT через INT17!!!
Успехов! :)


 
yachenick   (2003-11-05 11:25) [3]

У меня XP и 98. В паскале port будет работать только в 98, но не в XP. На асме код в норме,так как после
PortOut($378,255);
выполнить x:=port[$378] получим что надо(x:byte)= 255 . А как ты говориш работать через INT17?


 
Talla2k ©   (2003-11-06 01:59) [4]

Через int17 легко и просто смотри HELP!!!
Инфы просто море,поищи!!!Ежели не найдешь скажи,поделюсь!
И еще,типа работал как-то с LPT и через asm и через INT17,все работало как часы,не пойму что за проблемы???Это-ж не COM!!!


 
icWasya ©   (2003-11-06 11:03) [5]

а кстати посмотри в дебагере, как передаются параметры - не через регистры ли??


 
Agr   (2003-11-17 09:00) [6]

Под D6 есть компонент DirectPort (у меня, если не найдешь), для низкоуровневого доступа к портам,в Win9x работает отлично, в NT с Com-портом возникали косяки. Данные из регистра $378 (lpt1) выводятся напрямую на ноги 2-9 порта. Фишка в том, что если порт настроен не как SPP (Standart Parallel Port), то возможно чтение сигналов с этих ног.
И еще, проводки врят-ли загорятся, т.к. ток КЗ 50-60 мА максимум ;)


 
knstantun   (2003-11-17 11:15) [7]

Все зависит от ОСи, НО единстванный выход это DirectPort_3.8
- Компонент стоящий того, чтобы с его простотой, ворочить горы!


 
Новый чайник   (2003-11-17 18:16) [8]

Я писал подобные процедуры и на Асм и на стандартных операторах Паскаля (Port,mem,memw). Все работало. Код на Асме правильный. Тип порта не важен, я переключал по всякому и все работало под W9x. Сейчас вот маюсь с XP. Под ним ничего не работает на Асме. В чем косяк, не пойму никак. Кстати для теста программы я сделал переходную платку под LPT со светодиодами и теперь никакими проводками не экспериментирую. раньше стоял, простите, раком и тыкал осцилографом в разъем ( системник под столом у меня). Рекомендую сделать нечто подобное, намного удобнее да порт целее будет.


 
Agr   (2003-11-18 06:51) [9]

На ASME писать конечно круто, но под NT писать беспонтово...
Защищенный режим, 0-е кольцо, драйверы и прочая хрень (пытался разобраться да время жалко):( Зато с хваленым компонентом все на ура работало, на нескольких машинах проверял, с разными винтами, в т.ч. и на ХР...


 
Pat ©   (2003-11-18 13:25) [10]

>Agr (18.11.03 06:51) [9]
Win API - CreateFile, WriteFile, ReadFile...статей навалом


 
Alec   (2003-11-23 06:47) [11]

Я уже точно не помню - давно это было, но кажется в ЛПТ есть один инверсный выход, так что может это как раз он?



Страницы: 1 вся ветка

Текущий архив: 2004.02.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
14-29525
DiamondShark
2004-01-21 21:42
2004.02.10
Это круче пингвинов.


14-29519
Думкин
2004-01-22 05:54
2004.02.10
С днем рождения! 22 января.


14-29571
syte_ser78
2004-01-20 11:41
2004.02.10
Уже наверно всем надоевший вопрос :(


3-29281
Art76
2004-01-16 17:41
2004.02.10
Проблема с редактированием полей таблицы при вводе русских символ


14-29581
syte_ser78
2004-01-20 08:54
2004.02.10
Как вывести число ХХХХХХХ в виде Х ХХХ ХХХ ?