| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |