![]() |
Програмирование LPT (help!)
подскажите пожалйста как програмировать LPT порт .
Скажем : подать на 1 ножку 1.5 V , на 5 -ю 0.78V и т.д. P.S. числа не имеют значения , читай - "подать на x ножку y Вольт"... |
кажись такое делается через порты. Но убей не помню даж примерно какие и как. Поищи доки по программированию портов. Я думаю не сильно отличается от программирования COM-портов
|
Все что я нашел - это програмирование чипов с помощью програматоров.
А я ищу элементарные вещи.... |
есть на HappyTown.ru неплохая документация ...
Я хочу тоже самое но для DOS. |
|
http://www.pereplet.ru/nauka/perl/lpt.html - кажется то , что надо(читаю/разбираю)
|
Razbirai. Wot podskazka. Ischi ishodniki MOD playerow s podderjkoi Covox'a.
|
понемногу разбираюсь....
Вопрос: outb(x,port) - заисывает по определенному адресу x . что это значит в смысле напряжения на выходе? |
Zapisiwaet odin bait w port. Porti razdajutsya na urowne jeleza. Pryamoi swyazi s napryajeniem net.
|
Мне кажется что вопрос поставлен неправильно, хочу чуть пояснить выходное напряжение(оно стандартное +(2,5В-5В), обычно 5В четкие , но бывает иногда и ниже, но это уже проблемы блока питания) ты менять никак не можешь на значения отличные от 0В или 5В. Чтобы для какого-нить устройства подать другое напряжение, прийдется использовать доп. эл. схемы. Так вот таким образом ты можешь упрявлять через порт 12-ю напряжениями (8-канал данных и 4-контрольные сигналы) и следить ответную реакция по 4-м статусным сигналам, если порт двунаправленный , то ты также можешь получить 8-каналов на прием информфции. Вообще-то все очень подробно разжовано в линках указанных выше.
Очень помогло в решении своих задач. :))) |
Я немного отклонился от темы :))) , так вот есль базовай адрес памяти 0x378 - адрес данных (точнее нервая нога даннях)
0x379 - вторая нога данных и т.д и т.п. цитирую источники: Data Out W Base+0 D0-D7 8 LS TTL outputs - Это адреса (0х378 - 0х37F) на запись Status In R Base+1 S3-S7 5 LS TTL inputs - Это адреса (0x383 - 0x387) на чтение статуса (не важно чьего статуса) Control Out W Base+2 C0-C3 4 TTL Open Collector outputs - Это контрольные адреса (0x388 - 0x38B) для записи " " " C4 internal, IRQ enable " " " C5 internal, Tristate data [PS/2] Data Feedback R Base+0 D0-D7 matches Data Out Control Feedbk R Base+2 C0-C3 matches Control Out Так вот по определенному адресу прписываешь бит или байт в зависимости способа посылкиб также считываешь. В результате получаешь на выходе 5В или ничего. Советуется использовать для не кратковременных сигналов биты контроля, т.к. биты данных нужно перезаписывать (хотя может я и ошибаюсь). В зависимости на чем ты пишешь, посмотри в инете библиотеки работы с LPT портом на прямую, чаще всего там есть сразу готовые функции управления базовами сигналами. Надеюсь что чем-нибудь помог. Но еще рах повторяюсь, смотри ссылки выше. |
Kto pomnit takoi starij, drewnij sound blaster s nazwaniem Covox?
|
что я имел ввиду :
подаю 1 байт . какой смысл имеет значение этого байта? |
По каждому адресу находится БИТ!!!! Ты его либо в 1 вгоняешь , либо в 0, причем это делается функцией для работы с БИТАМИ. Если же хошь работатьс БАЙТАМИ то после правильной сборки БАЙТА из БИТОВ записываешь по адресу 0х378 - данные, или же в адрес 0х388 - контроль. А считывать 0х380.
Т.е. если хочешь послать на первую ногу 5В прописываешь в адрес 0х378 байт chr$(1), коли посылаешь на 5-ю ногу прописываешь chr$(16), а на первую и пятую вместе записываешь chr$(17) !!!!!!!!!!!! Успехов в труде и личной жизни |
Понял.
Спасибо! |
Gike, nakin Isalex'u golosochek.
|
Жалко, что прога работает только под root'ом. Кто-нибудь знает, как это решить?
|
Isalex, уровню 1 в цифровых ТТЛ микросхемах соответствует не 5В а примерно 3.5В, а уровню 0, не 0В, а примерно 0.7В.
А теперь объясните как управлять LPT в Windows XP на Visual C++ .NET, а то под досом то я умею, а в виндоус наверное API какие-то? |
Под XP на NuMege можно драйверок состряпать. Он там в примерах есть. Кажется GenericPort называется. Драйверком можно писать, читать все что в нижних адресах памяти... Ессно и все регистры посвященные LPT и другому харду в компе. Правда не очень корректно получается со спулером печати :) Он продолжает себя считать полным хозяином LPT.
Ну а далее потокам в драйвере назначаешь системный файл и работаешь из под чего угодно (MSVC++ etc.) |
Блин не успел свое слово вставить уже все сказали :)
Хочу добавить что я для того чтобы обеспечить высокоскоростную работу порта писал драйвер на numege. Есть классная штука в numege qwickvxd - драйвер можно написать за 5 минут. |
2 esergey
Нука про numege подробнее мона? Че за зверь? сколько весит? :) |
NuMega driver studio 2.6 (появилась 2.7) встраивается в Студию позволяет писать драйверки почти для всего харда в компе от СОМ до AGP. Весьма такая продвинутая штука. А главное без лишних ограничений свойственных микрософт ддк. Найти в осле можно. Весит около 50 метров. Плюс ддк поставить надо под ту Вин на которой драйверок работать будет (коллекция весит метров 200 под ХР только - около 100). Надо - залью и то и другое. Пиши в приват.
Сорри, за esergey ответил :rolleyes: , надеюсь не покусают... |
Зачем мучаться писать драйвер, когда таких уже в инете целая куча, могу дать один, документацией.
|
2 blood_hound
угу, пасиба за ответ!! обычно я добрый и не кусаюсь :):)gigi 2V@nya что за драйвер и что за документация? могбы сразу написать, чтобы не спрашивали :) |
Например, свой драйвер нужен для работы со специфическим форматом данных.
|
/7y3uK Смотри здесь
|
| Часовой пояс GMT +4, время: 21:41. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.