Платы COM-портов или программирование под C++ Builder? |
Ответить |
Автор | |
Новичок Присоединился: 30 Октябрь 2007 Категория: Russian Federation Online Status: Offline Публикации: 4 |
Опубликовано: 16 Май 2008 09:08 |
Здравствуйте!
На моем компьютере сгорели оба COM-порта. Для работы использую контроллеры I-7188XA. Программы пишу по DOS-ом. Сначала пишу программу на компьютере, а модуля, радиомодем, терминал ввода/вывода подключаю к COM-портам компьютера. Когда программа полностью отлажена - меняю библиотеки, компилирую заново и программу закачиваю в контроллер. Для нормальной отладки необходимо 2 COM-порта. После того как сгорели COM-порты купил многопортовую плату NetMos 9845PCI Multi-I/O Controller (6 COM портов). У нее одно прерывание и 6 базовых адресов. К плате NetMos 9845PCI Multi-I/O идет программа, которая позволяет устанавливать стандартные для COM-портов прерывания и адреса. Но т. к. прерывание используется одно, то и программа написанная под DOSом видит всего один COM-порт. Аналогичная ситуация и с MOXой CP-114IS. В связи с этим у меня несколько вопросов: 1. Имеются ли многопортовые платы PCI где каждому COM-порту назначается свое прерывание и базовый адрес? (старые мультикарты не подойдут - на MB нет ISA). 2. Возможно ли программу написанную на Borland C++ 3.1 под DOS-ом откомпилировать на Borland C++ Builder, с использованием старых DOS-овских библиотек? (и будет ли тогда корректно обращение к COM-портам платы NetMos 9845PCI Multi-I/O?). (Возможно для моей задачи использовать старый компьютер типа P-166, но это откат назад, а хочется прогресса :-) ). Заранее благодарен. Виктор. |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 02 Октябрь 2007 Категория: Russian Federation Online Status: Offline Публикации: 427 |
|
Терминология "видит один порт" не подходит - под DOS программа может обрабатывать все что есть в пространстве портов ввода вывода (а для com порта это те самые регистры которые им управляют). Прерывание может быть и одно и два - как позволит контроллер назначать. А вот в обработчике прерывания придется пробегать регистры идентификации прерываний всех com портов, которые назначены на это прерывание , ну и соответственно , в прерывании должны быть обработчики для всех портов. Чуть вперед забегу. Сталкивался с тем, что обращание к портам ввода вывода в разных машинах по разному работает. В 386 вообще вопросов никаких, а вот при переносе того же текста на 486, код отказывается работать - в программе требуются задержки после операций обращения к портам ввода вывода, если такие обращения идут подряд.
Теоретически в Builder можно написать консольное приложение, вот только его запустить не получиться - оно же будет напрямую по портам лазить , а винда не пустит и будет ругаться. Но тут экспериментировать надо.
|
|
При экспериментах ни один чайник не пострадал
----------- Плохому системному интегратору всегда OPC сервер мешает. ______________ Пишу на C++ за еду |
|
Новичок Присоединился: 30 Октябрь 2007 Категория: Russian Federation Online Status: Offline Публикации: 4 |
|
>"Терминология "видит один порт" не подходит..." У меня имеется библиотека, которая идет в комплекте с контроллером I-7188XA и позволяет писать программу на ПК по DOS. В этой библиотеке имеются функции, которые позволяют работать с COM-портами у которых "стандартные" адреса, т.е. COM1 - адреса 3F8h и прерывание IRQ4. COM2 - адреса 2F8h и прерывание IRQ3. Когда я использую плату NetMos 9845PCI Multi-I/O для портов устанавливаются адреса 3F8h, 2F8h и прерывание IRQ3. Функции, которые идут в комплекте с контроллером в этом случае ВИДЯТ (если хотите, то "работают" или "обращаются" или "обрабатывают", как вам будет удобнее) только данные с COM2-порта. Для того, что бы моя программа рабтала с портом COM1 мне необходимо самому писать эти функции и обработчик прерывания. А мне не хотельсь бы их писать, когда у меня уже имеются функции, которые проверены и работают со стандартными COM-портами. Виктор. |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 02 Октябрь 2007 Категория: Russian Federation Online Status: Offline Публикации: 427 |
|
Ну тады ничего не сделаешь.
|
|
При экспериментах ни один чайник не пострадал
----------- Плохому системному интегратору всегда OPC сервер мешает. ______________ Пишу на C++ за еду |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |