Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с модемом(Turbo C++), Как набрать номер 
:(
    Опции темы
Tommy
Дата 19.7.2002, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 19.7.2002

Репутация: нет
Всего: нет



Эй может я чё не догоняю, но может скажете как набрать номер.
Может это и ельзя но может скажите
PM MAIL   Вверх
suborg
Дата 20.7.2002, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.4.2002
Где: Москва

Репутация: нет
Всего: нет



Я так понимаю, пишешь под досом. Муторный вариант - работа с портом через inp, outp, эффективнее и проще работать через фоссил драйвер, например bnu или x00. Тогда все операции производятся через функции, предоставляемые драйвером через прерывание. Почитай Ralph's Brown Interrupt list, там найдешь номер прерывания фоссил драйвера и описание функций, обеспечивающих вывод данных в модем и обратно.
Для набора номера нужно просто послать в модем строчку вида atdp1234567
PM MAIL WWW ICQ   Вверх
Tommy
  Дата 21.7.2002, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 19.7.2002

Репутация: нет
Всего: нет



Наконец хоть один человек нашелся кто смог ответить на вопрос! Все фукции ввода вывода в модем я знаю, но вот что мне это если я набрать номер не могую. Спасибо! :D
PM MAIL   Вверх
Tommy
Дата 21.7.2002, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 19.7.2002

Репутация: нет
Всего: нет



Цитата(suborg @ 20.7.2002, 21:48)
Я так понимаю, пишешь под досом. Муторный вариант - работа с портом через inp, outp, эффективнее и проще работать через фоссил драйвер, например bnu или x00. Тогда все операции производятся через функции, предоставляемые драйвером через прерывание. Почитай Ralph's Brown Interrupt list, там найдешь номер прерывания фоссил драйвера и описание функций, обеспечивающих вывод данных в модем и обратно.
Для набора номера нужно просто послать в модем строчку вида atdp1234567

Цитата
Почитай Ralph's Brown Interrupt list


Где это найти можно?
PM MAIL   Вверх
suborg
Дата 21.7.2002, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.4.2002
Где: Москва

Репутация: нет
Всего: нет



Interrupt List:

http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html

Если слёту не получится, могу прислать исходник аона для Russian Courier'а, там реализуется работа с фоссилом и соответственно посылка комант в модем.

В общем если что, пиши мне на мыло.
PM MAIL WWW ICQ   Вверх
Baa
Дата 1.8.2002, 03:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Если еще надо...
- 112 -

            E11.Последовательный интерфейс RS-232F

                    E11.1. Общие сведенияF

     В сотав  IBM PC могут  входить до четырех  последовательных
интерфейсов, работающих в стандарте RS-232 (отечественный аналог
- стык С2) и именуемых СОМ1 - СОМ4. Им выделены следующие адреса
в области портов ввода-вывода:

     СОМ1:   3F8h-3FFh          COM3:    338h-33Fh
     COM2:   278h-2FFh          COM4:    238h-23Fh

(интерфейсы СОМ3 и СОМ4 поддерживаются только в моделях PS/2).

     Каждый интерфейс связан  с определенным уровнем контроллера
прерываний:

     СОМ1 вызывает прерывание IRQ4 (Int 0Ch)
     COM2 вызывает прерывание IRQ3 (Int 0Bh)
     СОМ3 и СОМ4 не имеют стандартных векторов прерываний.

     Каждое  из устройств  RS-232 представляет  собой контроллер
8250, оснащенный 25- или 9- штырьковым разъемом на задней стенке
корпуса ПЭВМ.  Этот разъем может  использоваться для подключения
мыши,  графопостроителя   или  организации  связи   между  ПЭВМ.
Контакты стыка RS-232 имеют следующие наименования

---------T---------T--------------T-------------------T--------╛
╕Название╕ Имя цепи╕Номер контакта╕ Назначение        ╕Направ- ╕
╕сигнала +---T-----+-----T--------+                   ╕ление   ╕
╕        ╕EIA╕CCITT╕9-шт.╕ 25-шт. ╕                   ╕        ╕
+--------+---+-----+-----+--------+-------------------+--------+
╕ DCD    ╕CF ╕ 109 ╕  1  ╕   8    ╕Связь модемов      ╕В ПЭВМ  ╕
╕        ╕   ╕     ╕     ╕        ╕установлена        ╕        ╕
╕ RX     ╕BB ╕ 104 ╕  2  ╕   3    ╕Принимаемые данные ╕В ПЭВМ  ╕
╕ TX     ╕BA ╕ 103 ╕  3  ╕   2    ╕Передаваемые данные╕Из ПЭВМ ╕
╕ DTR    ╕CD ╕108/2╕  4  ╕  20    ╕Готовность ПЭВМ к  ╕Из ПЭВМ ╕
╕        ╕   ╕     ╕     ╕        ╕работе             ╕        ╕
╕ SG     ╕AB ╕ 102 ╕  5  ╕   7    ╕Сигнальная земля   ╕ ----   ╕
╕ DSR    ╕CC ╕ 107 ╕  6  ╕   6    ╕Готовность модема к╕В  ПЭВМ ╕
╕        ╕   ╕     ╕     ╕        ╕работе             ╕        ╕
╕ RTS    ╕CA ╕ 105 ╕  7  ╕   4    ╕Запрос на передачу ╕Из ПЭВМ ╕
╕ CTS    ╕CB ╕ 106 ╕  8  ╕   5    ╕Готовность модема к╕В ПЭВМ  ╕
╕        ╕   ╕     ╕     ╕        ╕ к передачи        ╕        ╕
╕ RI     ╕CE ╕ 125 ╕  9  ╕  22    ╕Индикатор вызова   ╕В ПЭВМ  ╕
╕ FG     ╕AA ╕ 101 ╕ --  ╕   1    ╕Защитная земля     ╕ ----   ╕
L--------+---+-----+-----+--------+-------------------+---------

     Контроллер стыка RS-232  является полностью программируемым
устройством;  вы  можете   задать  следующие  параметры  обмена:
количество битов  данных и стоп-битов,  вид четности и  скорость
обмена в бодах (бит/с).




                           - 113 -

                    E11.2. Описание портовF

     Ниже описаны порты ввода-вывода  для СОМ1, имеющего базовый
адрес  3F8h.  Обратите  внимание,  что  порты  3F8h и 3F9h имеют
разное назначение в зависимости от бита  7 порта 3F8h (т. н. бит
DLAB - Divisor Latch Access Bit).

 Порт  Операция   Описание
----------------------------------------------------------------
 3F8h   Запись   Регистр передатчика - сюда засылается байт для
                 передачи
        Чтение   Регистр приемника - отсюда извлекается принятый
                 байт
        Запись   Если DLAB=1, то сюда засылается младший байт
                 скорости обмена (см. порт 3F9h)

 3F9h   Запись   Если DLAB=1, то сюда засылается старший байт
                 скорости обмена. Скорость задается значением
                 делителя, равным 115200/V, где V - скорость
                 в бодах. Например, для скорости 9600 бод
                 делитель равен 115200/9600=12=0Ch, поэтому
                 нужно вывести 0Ch в порт 3F8h и 0 в порт 3F9h.
        Запись   Регистр управления прерываниями (1 = разрешить
                 прерывание):

 7  6  5  4  3  2  1  0
---T--T--T--T--T--T--T--╛
╕0 ╕0 ╕0 ╕ 0╕  ╕  ╕  ╕  ╕ Бит:
L--+--+--+--+T-+T-+T-+T-- ----
             ╕  ╕  ╕  L-> 0: прерывание по приему символа
             ╕  ╕  L----> 1: прерывание по завершению передачи
             ╕  ╕            символа
             ╕  L-------> 2: прерывание по обрыву линии или
             ╕               или ошибке в линии
             L----------> 3: прерывание по изменению состояния
                             модема (любой из линий CTS, DSR, RI
                             и DCD)

 3FAh   Чтение   Регистр идентификации прерывания. Когда
                 произошло прерывание, здесь содержится причина,
                 вызвавшая его:

 7  6  5  4  3  2  1  0
---T--T--T--T--T--T--T--╛
╕0 ╕0 ╕0 ╕ 0╕ 0╕     ╕  ╕ Бит:
L--+--+--+--+--+--+--+T-- ----
                  ╕   ╕
                  ╕   L--> 0: 0=есть отложенные прерывания
                  L------> 1-2: причина прерывания:
                                11=ошибка или обрыв линии;
                                  сбрасывается чтением регистра
                                  состояния линии (порт 3FDh)
                                10=принят символ; сбрасывается
                                  чтением приемника (порт 3F8h)
                                01=передан символ; сбрасывается



                           - 114 -

                                  записью символа в регистр
                                  передатчика (порт 3F8h)
                                00=изменение состояния модема
                                  (линий CTS, DSR, RI или DCD);
                                  сбрасывается чтением регистра
                                  состояния модема (порт 3FEh)

 3FBh   Чтение/  Регистр управления линией:
        Запись

 7  6  5  4  3  2  1  0
---T--T--T--T--T--T--T--╛
╕  ╕  ╕  ╕     ╕  ╕     ╕ Биты:
LT-+T-+T-+--+--+T-+--+--- -----
 ╕  ╕  ╕    ╕   ╕    ╕
 ╕  ╕  ╕    ╕   ╕    L---> 0-1: число битов данных:
 ╕  ╕  ╕    ╕   ╕               00=5, 01=6, 10=6, 11=8
 ╕  ╕  ╕    ╕   L--------> 2: число стоп-битов:
 ╕  ╕  ╕    ╕                 0=1, 1=1.5 при 5 битах данных
 ╕  ╕  ╕    ╕                 и 2 в противном случае
 ╕  ╕  ╕    L------------> 3-4: тип четности:
 ╕  ╕  ╕                        X0=нет,
 ╕  ╕  ╕                        01=нечетная,
 ╕  ╕  ╕                        11=четная
 ╕  ╕  L-----------------> 5: постоянная четность
 ╕  ╕                         0=отмена постоянной четности
 ╕  ╕                         1=постоянный бит четности,
 ╕  ╕                           зависит от битов 3-4:
 ╕  ╕                           биты 3-4=01 - бит четности
 ╕  ╕                                         всегда 1
 ╕  ╕                           биты 3-4=11 - бит четности
 ╕  ╕                                         всегда 0
 ╕  ╕                           биты 3-4=X0 - без бита четности
 ╕  L--------------------> 6: 1=имитировать обрыв линии
 ╕                              (посылка нулей)
 L-----------------------> 7: бит DLAB:
                              1=порты 3F8h и 3F9h для загрузки
                                скорости обмена;
                              0=порты 3F8h и 3F9h в обычном
                                режиме

 3FCh   Запись  Регистр управления модемом

 7  6  5  4  3  2  1  0
---T--T--T--T--T--T--T--╛
╕ 0╕ 0╕ 0╕  ╕  ╕  ╕  ╕  ╕ Бит:
L--+--+--+T-+T-+T-+T-+T-- ---
          ╕  ╕  ╕  ╕  L-> 0: 1=установить выход DTR
          ╕  ╕  ╕  L----> 1: 1=установить выход RTS
          ╕  ╕  L-------> 2: 1=установить OUT1 (не используется)
          ╕  L----------> 3: 1=установить OUT2 (разрешить преры-
          ╕                    вания от RS-232)
          L-------------> 4: 1=диагностический режим (посылать
                              выход на вход стыка).




                           - 115 -

 3FDh   Чтение    Регистр состояния линии. Биты 1-4 вызывают
                  прерывания по ошибке, если оно разрешено:

 7  6  5  4  3  2  1  0
---T--T--T--T--T--T--T--╛
╕ 0╕  ╕  ╕  ╕  ╕  ╕  ╕  ╕ Бит:
L--+T-+T-+T-+T-+T-+T-+T-- ---
    ╕  ╕  ╕  ╕  ╕  ╕  L-> 0:1=данные приняты. Сбрасывается
    ╕  ╕  ╕  ╕  ╕  ╕          чтением приемника
    ╕  ╕  ╕  ╕  ╕  L----> 1:1=потеря предыдущего символа
    ╕  ╕  ╕  ╕  L-------> 2:1=ошибка четности
    ╕  ╕  ╕  L----------> 3:1=неверный стоп-бит
    ╕  ╕  L-------------> 4:1=обнаружен обрыв линии
    ╕  L----------------> 5:1=сдвиговый регистр передатчика пуст.
    ╕                         Можно передавать след. символ
    L-------------------> 6:1=регистр передатчика пуст. Нет
                              обрабатываемых данных.

 3FEh   Чтение    Регистр состояния модема. Биты 0-3 вызывают
                  прерываниe по изменению состояния модема,
                  если оно разрешено:

 7  6  5  4  3  2  1  0
---T--T--T--T--T--T--T--╛
╕  ╕  ╕  ╕  ╕  ╕  ╕  ╕  ╕ Бит:
LT-+T-+T-+T-+T-+T-+T-+T-- ---
 ╕  ╕  ╕  ╕  ╕  ╕  ╕  ╕
 ╕  ╕  ╕  ╕  ╕  ╕  ╕  L--> 0:1=изменилось состояние линии CTS
 ╕  ╕  ╕  ╕  ╕  ╕  L-----> 1:1=изменилось состояние линии DSR
 ╕  ╕  ╕  ╕  ╕  L--------> 2:1=изменилось состояние линии RI
 ╕  ╕  ╕  ╕  L-----------> 3:1=изменилось состояние линии DCD
 ╕  ╕  ╕  L--------------> 4: состояние линии CTS
 ╕  ╕  L-----------------> 5: состояние линии DSR
 ╕  L--------------------> 6: состояние линии RI
 L-----------------------> 7: состояние линии DCD

     Примечание:  "Изменилось состояние  линии..." означает, что
данная линия стыка RS-232 изменила свое состояние по сравнению с
последним чтением этого регистра.




                           - 116 -

              E11.3. Порядок инициализации 8250F

     Для  подготовки   контроллера  8250  к   работе  необходимо
выполнить следующие шаги.

     1.  Установить  бит  DLAB  порта  3FBh  и заслать делитель,
задающий скорость обмена, в порты 3F8h и 3F9h.

     2. Инициализировать регистр  управления линией (порт 3FBh);
при этом сбросить бит DLAB.

     3. Инициализировать регистр управления модемом (порт 3FCh).

     4.  Инициализировать регистр  управления прерываниями (порт
3F9h) и,  если прерывания разрешены,  установить адрес программы
обработки прерываний от стыка RS-232.




--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0652 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.