Форум: "Система";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];
ВнизCom Port Найти похожие ветки
← →
VitalyU (2001-12-09 06:06) [0]Подскажите как программно подать на какую-либо ножку ком-порта напряжение и потом программно выключить?
← →
Digitman (2001-12-09 14:37) [1]Никак. Состояние физ.линий выходной интерфейсной шины стандартных COM-устройств управляет UART-контроллер по определенной (а не произвольной) логике.
← →
ComPort (2001-12-09 14:38) [2]Ну если токмо на DTR или RTS.
← →
Satrap (2001-12-13 09:58) [3]procedure SetPort(addres,Value:word);
begin
Value:=trunc(Value and 255);
asm
push ax
push dx
mov ax,addres
mov al,Value
out ax,al
pop dx
pop ax
end;
end;
У меня вот так работает.
← →
Satrap (2001-12-13 10:08) [4]Извините коллега, я торопился и ошибся, правильно вот так:
procedure SetPort(Addres,Value:Word);
var
bValue:byte;
begin
bValue:=trunc(Value and 255);
asm
// тут все то же самое, только mov al,bValue
end;
end;
На всякий случай, нужно ведь еще знать базовые адреса портов. для com1 обычно 3f8H, для com2 2f8h. Но эти адреса можно и изменить в настройках
BIOS
← →
Digitman (2001-12-13 10:18) [5]>Satrap
Это ты так замечательно "на ножки напряжение подаешь" ?)))))
← →
OlegY (2001-12-13 14:49) [6]Никак. Состояние физ.линий выходной интерфейсной шины стандартных COM->устройств управляет UART-контроллер по определенной (а не произвольной) >логике.
Посмотри EscapeComFunction()
← →
ComPort (2001-12-14 01:59) [7]Bravo Satrap! Токмо "Извините коллега, я торопился и ошибся", надо было бы указывать во всех Ваших ответах!
Тише едешь - дальше будешь.
← →
Satrap (2001-12-14 11:52) [8]Вы друзья, как всегда предельно лоялны в оценках, хотя, что вас конкретно не устраивает не ясно. Конечно, эта процедура не позврляет подавать на ноги ком порта какое вздумается напряжение, а только лог 0 или 1
Короче, что не так?
← →
Digitman (2001-12-14 14:35) [9]>OlegY
Ну и где ты там увидел (в EscapeCommFunction), что можно произвольно манипулировать напряжением на вых.линий порта ?
← →
Digitman (2001-12-14 14:46) [10]"какая-либо ножка" - читай : произвольно выбранная вых.физ.линия разъема порта.
Из 9-ти линий сразу "выкидываем" линии SG и PG - они вообще неуправляемые.
Линия TxD недоступна для непосредственной установки состояния - она управляется микроконтроллером UART синхронно с тактовым генератором.
Линии CTS, DCD, DSR - входные.
Остаются линии DTR и RTS (, ). Но это же, согласитесь, далеко не "любая ножка" !!!!!
← →
gek (2001-12-14 14:48) [11]Satrap прав только 0 или 1
У меня например так все и работает на порту
← →
Digitman (2001-12-14 14:51) [12]>gek
А что, кто-либо здесь усомнился, что COM-порт не дискретное, а аналоговое устройство ?)))
← →
gek (2001-12-14 15:45) [13]>> Digitman ©
Ты меня не совсем верно понял
← →
Digitman (2001-12-14 16:09) [14]>gek
А как ьебя еще понимать, если ты такие комментарии приводишь, будто кроме 0 и 1 на линях дискретного устр-ва может что-то еще присутствовать ?)
← →
ComPort (2001-12-15 02:12) [15]А я уже совсем запутался пытаясь выполнить
out ax,al
см. Satrap (13.12.01 09:58)
по адресу 3F8H см. Satrap (13.12.01 10:08)
Один черт разберется что и куда нужно передать или выставить!
Ну а насчёт произвольного потенциала на выводах, готов дать ссылку на фирму (отечественную), которая производит классные устройства для вывода и/или считывания аналоговой информации с/в компьютер.
← →
Mbo (2001-12-15 07:09) [16]ну дай ссылку -
есть потребность в АЦП 20-разрядном или лучше,
скорость не особенно важна.
Все лепят в основном шустрые 14-разрядные...
← →
ComPort (2001-12-15 17:14) [17]Держи http://www.lcard.ru
← →
MBo (2001-12-16 07:47) [18]Знаю такую контору. У них нет того, что мне нужно, только один 24-х разрядный АЦП, но внешний и дорого.
← →
CommPort (2001-12-17 05:48) [19]Ну извини. Но твои запросы "весьма не ординарные". Если ты когда нибудь работал с "физическими" устройствами и цифровыми вольтметрами, к примеру, то мог бы увидеть как это сложно. Там пятый знак (в большинстве случаев) скачет как псих, а уж про следующие и разговоров нет. И это при том, что там используются максимальные способы подавления помех. Т.е. я хочу сказать, что "такие приборы" - обязательно "внешние" и, имхо, "дорогие". Иначе никак.
← →
Satrap (2001-12-17 14:47) [20]Хотелось бы ответить ComPort. Я вхожу в интернет с работы, тут очередь на интернет,и она
действует мне на нервы, так что если я написал out ax,al, я опять ошибся, прошу пардону.
Правильно out dx,al. В dx адрес в al данные, команда out подает данные непосредственно
на порт процессора. Но ты ComPort кое что еще сделал не так:
1. 3f8 это базовый адрес Com1. Скорей всего, у тебя там мышь.
2. Я не говорил, что надо пользоваться 3f8 или 2f8 это только базовые адреса, указывать
надо не их. Адрес DTR если не ощибаюсь,базовый адрес+4 , RST не помню.
3. Порт перед использованием надо открыть(захватить) с помощью CreateFile. Объяснять как это
делается мастерам дельфи я даже не решаюсь.
Клянусь богом, аллахом и ветром, я написал две программы, используя данную процедуру, одна
опрашивает сеть MicroLane, другая читает данные EEPROM, и все безубойно работает.
← →
Com Port (2001-12-18 03:20) [21]2 Satrap
Ну во-первых, ВСЕ адреса работают только в линейке 9х.
Во-вторых, "Адрес DTR" или "Адрес RTS" - это НОНСЕНС. Есть порт, "Base address +4" ,(т.е. для 3F8Н - это 3FC,) установка бита 0 в единицу -означает установку DTR в единицу, а установка бита 1 - соответственно RTS.
Далее, использование 32-битной функции "CreateFile" сводит на нет ВСЕ предыдущие высказывания о портах. Либо То, либо ЭТО.
Насчет клятв - спорить не собираюсь. Просто верю, что это правда. Но в описании программы - ???
← →
Digitman (2001-12-18 13:49) [22]>ComPort
Ты , может, пояснишь, для чего тебе все это нужно ? Ты хочешь нестандартно использовать COM-port что ли ? Типа - использовать только выходные линии RTS и DTS (имея некоторую возможность управлять их состоянием непосредственно) для управления неким устройством, несовместимым с RS-232 ?
← →
Comm Port (2001-12-18 14:57) [23]2 Digitman
Я то и так использую их нестандартно, а именно для питания некоего преобразователя и иногда RTS для переключения режима работы оного. Но Вы ошиблись не я автор вопроса. Автор давно уже ушел.
← →
Digitman (2001-12-18 15:14) [24]>Comm Port
Н-да, действительно). Вопрос "Com port" и НИК "Comm Port" слишком пересекаются.
Не чудил бы ты с НИКом. Вроде с головой-то "дружишь", и - неплохо, а уподобляешься разным клоунам местным, испытывающим порой оргазм от изобретательства совершенно дурацких НИКов ... извини уж) ...
← →
Someone (2001-12-18 15:29) [25]2 Digitman
Может Вы и правы.
← →
Digitman (2001-12-18 15:44) [26]>Someone
Рискуя запустить очередной флейм, всен же спрошу - в чем прав ? По сабжу ? Вас, сударь, в этой дискусии как-то не наблюдалось ...
← →
Someone (2001-12-18 18:03) [27]Сорри. Забыл приписать Comm Port -> Someone. Флейма не надо.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.006 c