Форум: "Система";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
ВнизCOM1-COM4 и IRQ - ??? Найти похожие ветки
← →
Asdf622 (2001-11-23 21:21) [0]Имеется проблема:
С использованием "Async Professional 3.00" (Win98SE, Delphi5) идет опрос трех устройств висящих на COM2,3,4 (плюс мышь на COM1). При этом если порты выставлены: COM1 на IRQ4, COM2 на IRQ3, COM3 на IRQ4, COM4 на IRQ3 то нормально работают только устройства на COM1, COM2. На СОМ3 и СОМ4 передаются какие-то
рваные куски информации. Если пересадить СОМ3 на IRQ10, СОМ4 на IRQ11 то "Async Pro" не видит их. Хотя по коссвенным признакам устройства и порты функционируют нормально. Как я понимаю "Async Pro" знает для COM-портов только IRQ3,4? Как ему задать IRQ для портов рукамя я не нашел.
Кто нибудь знает как решить эту проблему?
З.Ы. Использование "Async Pro" для связи с портами необходимо.
------------------------
Дополнения и подробности:
Аналогичная проблема возникает если заменить "Async Professional 3.00" на компонент "ComDrv32" - представленный в "Кладовке". Картина точно такая же:
при установке COM3 на IRQ4 и свободном COM1 все работает;
при установке COM3 на IRQ4 и занятом COM1 - обрывки данных на СОМ3.
при установке COM3 на IRQ10 и произвольном состояние COM1 внешнее устройство (мультиметр Protek-506) сигнализирует о передаче данных НО в буфер обмена при этом остается пустым.
На компутере установлено две мультикарты с поддержкой СОМ1-СОМ4.
Помогите, кто сталкивался с подобной задачей.
------------------------
Кусок кода отвечающий за ввод данных:
...
CPD_h1.Port:=pnCOM3;
CPD_h1.BaudRate:=br1200;
CPD_h1.DataBits:=db7BITS;
CPD_h1.StopBits:=sb2BITS;
CPD_h1.Parity:=ptNONE;
CPD_h1.Connect;
...
for i:=1 to 15 do CPD_h1.ReadChar(c[i]);
...
← →
33 (2001-11-25 19:15) [1]Для начала попробуй мышь перебросить на PS/2.
← →
Asdf622 (2001-11-26 10:30) [2]Она и так на нем. Это здесь не причем.
Проблема наблюдается на обоих парах портов СОМ1-СОМ3 и СОМ2-СОМ4.
Какие еще идеи?
← →
Erik Ivanov (2001-11-26 12:36) [3]Все просто СОМ1-СОМ3 сидят на одном IRQ и драйвер должен уметь определить из какого порта идут данные. Вроде проблем быть недолжно Windows это умеет. Но возможно он делает это только при определеной комбинации флагов в DCB. Сам мучился с COM, проблему можно решить чисто логическим методом. Хотя проще сделать свой VXD м незнать проблем, програмирование COM под DOS на порядок проще.
← →
33 (2001-11-27 00:58) [4]>..опрос трех устройств висящих на COM2,3,4 (плюс мышь на COM1).
Так мышь на COM1 или на PS/2?
Попробуй COM3 или 4 выделить другое IRQ, но не 10-11, а 5 или 7.
Принтер прийдется отключить или сдвинуть.
Проверь мультикарты - правильно настроенны?
Какая мама?
← →
Asdf622 (2001-11-27 12:39) [5]Мыша в рабочем состояние будет стоять на СОМ1 но сейчас на PS/2.
Пара мультиметров например на СОМ1-СОМ3.
Выделение других IRQ под СОМ3 - не меняет "клинической картины".
(т.е. если для СОМ3 IRQ не 4 то данные не идут (буфер обмена пуст))
Мультикарты настроены верно: 1.при загрузке видно 4 СОМ-порта.
2.в Винде все порты видны и не конфликтуют.
← →
pasha676 (2001-11-27 14:24) [6]Вообщето Winды частенько глючили если больше двух портов. На 95 такую ситуацию периодически наблюдал
← →
33 (2001-11-28 09:24) [7]Проблемы с подключением Мыши на COM будут на 90%.
Проверенно на модемах.
А IRQ ты где меняешь?
В BIOSe или в Винде?
Давно не работал с Async Professional, но кажется, там
была возможность менять прерывание.
А зачем мультиметрам прерывание? Им адресов не хватает?
Кстати адреса портов (3f8-com1, 2f8-com2, 3e8-com3, 2e8-com4)
правильно стоят в BIOSE и в Винде.
← →
Asdf622 (2001-11-28 10:50) [8]"33", спасибо за попытки помочь.
1. Мышь - не самое главное, главное работа других трех портов с
мультиметрами (3 штуки).
2. IRQ меняю в Винде, в БИОСе (по крайней мере в моем) можно определить
только адрес порта (1-4), а IRQ явно не задается.
3. Я вроде порылся в ней, но ничего не нашел (адрес - задать можно, IRQ -
нет) из этого и подозрение что она знает только IRQ3,4. Если встречал
в "AsyncPro" такую настройку, подскажи хотя бы куда копать.
4. Адреса портов стоят правильно в BIOSE и в Винде.
А зачем им IRQ - не знаю, но вообще-то каждому СОМу он зачем-то положен.
← →
Zebo (2001-11-28 19:55) [9]В компьютере стандартно установлено 2 порта.
Если вы добавите еще одну плату то именно на плате должно быть
возможность выбора адреса и irq (обично jumper-и)
на многих платах можно вибирать только IRQ-3/4
скорее всего вам нужно плата где IRQ можно задать другой.
← →
Asdf622 (2001-11-28 22:41) [10]Мультикарты достаточно старые, стояли еще на 386.
На них нет выбора IRQ в явном виде.
Каждая пара портов определяетс двумя джамперами: первый - COM1/3: Enable-Disable, второй - выбор СОМ1-СОМ3.
Для СОМ2/4 - аналогично.
Какие при этом IRQ поддерживает карта - неведомо.
← →
gepard (2001-11-29 15:40) [11]Полноценно работать с тремя комами одновременно(открыть и читать-писать сразу в три) я смог только после того, как поставил навороченную мультяху(с возможностью выбора прерывания) и на ней сдвинул прерывание для третьего порта(кажется на IRQ5). Сколько не пытался - на одном прерывании два кома не открывались.
← →
erik (2002-02-07 13:40) [12]Можно работать на одном прерывании, но не под Windows. При получении прерывания надо ситывать оба порта и определять в котором данные. Далее передовать их дальше и указанием порта.
← →
Juri (2002-02-08 19:09) [13]Может не сильно в тему если это штука которую ты делаеш, это всерьез и надолго то можно сделать электронный коммутатор в котором можно выбирать номер COM,тогда достаточно один COM, но аппаратные устройства можно опрашивать только последовательно.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c