Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Программирование модемов

© Александр Фролов, Григорий Фролов
Том 4, М.: Диалог-МИФИ, 1993, 236 стр.

[Назад] [Содеожание] [Дальше]

2.4. Прием данных

Аналогично передаче данных перед вводом символа из регистра данных (адрес baseadr) необходимо убедиться в том, что бит 0 регистра состояния линии (адрес baseadr + 5) установлен в 1. Это означает, что символ принят из линии и находится в буферном регистре приемника.

Для приема данных мы подготовили следующую функцию:

/**
*.Name         aux_inp
*.Title        Ввод символа из асинхронного адаптера
*
*.Descr        Эта функция дожидается готовности
*              приемника и вводит символ из асинхронного
*              адаптера.
*
*.Proto        char aux_inp(int port);
*
*.Params       int port - номер асинхронного адаптера:
*                 0 - COM1, 1 - COM2
*
*.Return       Принятый символ
*
*.Sample       aux_test.c
**/

#include <stdio.h>
#include <conio.h>
#include "sysp_com.h"

char aux_inp(int port) {

   unsigned status_reg, inp_reg;

   status_reg = 0x3fd - 0x100 * port;
   inp_reg = status_reg - 5;

   while( (inp(status_reg) & 1) == 0 );

   return(inp(inp_reg));

}

[Назад] [Содеожание] [Дальше]