Форум: "Система";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];
ВнизПомогите с 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c