Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-66900
Delph
2002-03-06 09:37
2002.03.21
Как выгрузить CGI приложение с удаленного сервера?


1-66937
Reals
2002-03-06 16:15
2002.03.21
Как перейти на споледнюю строчку текстового файла и прочитать ее.


3-66789
ray_wagner
2002-02-22 23:04
2002.03.21
Как инсталлировать BDE если нет ISExpress?


6-66945
Gua
2002-01-07 21:29
2002.03.21
Имя компьютера ?


3-66734
gegc
2002-02-20 09:37
2002.03.21
Как и чем создать DBF чтобы он открывался в экселе и аксесе И чтобы руссие буквы были похожи на русские буквы? (BDE не предлагать!)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский