Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > Модемы/СОМ порт.


Автор: Mura-vey 6.4.2005, 22:07
Как осуществляеться запись команд в модем. Вообще как это работает с СОМ портом. Не могли бы подробно рассказать про работу с СОМ портом и как с помощью этой работы передать команду в модем и получить отклик на неё. Всё под ДОСом.

Автор: Chingachguk 8.4.2005, 15:40
Цитата
Как осуществляеться запись команд в модем


Ну как - отправляются байтики в порт. Например: "AT"+13, потом читаются байтики. Если модем на месте, то он должен ответить "OK"+13+10. Попробуй любой терминальной программкой.

Цитата
Вообще как это работает с СОМ портом.


Надо организовать код, который способен читать/писать данные в com-порт. Если это делать на самом низком уровне (на уровне команд in/out), то необходимо:

- Настроить обработчик прерываний от COM-порта;
- Выполнить инициализирующие команды, в том числе разрешающие прерывания по приходу данных в порт. Можно, конечно, и без прерываний.

Если нужен более высокий уровень, то можно использовать int 14h. Но я его не люблю, лучше все сделать самому.


Автор: Mura-vey 10.4.2005, 21:36
Chingachguk Это всё понятно. Мне бы на примерах. Просто хочу научиться работать с СОМ портом в железе на ПК, чтобы потом перенести опыт на микроконтролеры (AVR). Есть некоторые задачи.

Автор: Chingachguk 10.4.2005, 23:52
Что ж, пример так пример. В аттаче рабочий модуль, который я вытащил из одного EXE в виде модуля для PASCAL для DOS (я пользуюсь turbo pascal 7.0) и немного доработал. Там есть все необходимые функции для обмена данных через COM-порт: инициализация, чтение/запись данных, восстановление линии.

Если не нравится *.pas, могу дать на *.C.

Автор: Mura-vey 14.4.2005, 08:31
Chingachguk Низкий поклон в ножки! Паскаль это прям то, что надо! А нельзяли по подробнее рассказать, как с помощью этих функций заложенных в этом юните например:
1)инициализировать модем
2)Послать команду ATDP100
3)Передать байтик

Огромное спасибо!

Автор: Chingachguk 14.4.2005, 10:28
Значит, так. Вот тебе мои два архива. Один - это реальная прога, именно в ней используется com.pas. Там есть и инициализация линии, и обмен байтами, правда много чего лишенго - интерфейс, прочая хрень.

Второй - это терминальная прога, которая обменивается байтиками по com-порту через прерывания. Все чисто на pas. Компилить turbo pas 7.0 или 7.1. Замыкаешь свои COM1 и COM2 шнуром и запускаешь в двух окошках отдельных.


Автор: Chingachguk 14.4.2005, 10:42
next
Добавлено @ 10:44
>> Послать команду ATDP100

Так и посылаешь набор байтов - A, T... В конце для модема нужен 13h

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)