Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

bioscom

bioscom


Функция            Выполняет ввод/вывод из последовательного порта.

Синтаксис          #include<bios.h>
                   int bioscom(int cmd, char abyte, int port);

Файл, содержащий   bios.h
прототип

Описание           Функция bioscom выполняет разнообразную связь через
                   RS232 при помощи порта ввода/вывода, указываемого в
                   аргументе port.

                   Значение 0  аргумента  port   соответствует   COM1,
                   значение 1 соответствует COM2 и т.д.

                   Значение аргумента   cmd   может   быть   одним  из
                   следующих:

                   0 - устанавливает параметры связи в abyte;
                   1 - пересылает символ в abyte по линии связи;
                   2 - получает символ по линии связи;
                   3 - возвращает текущее состояние коммуникационного
                       порта.

                   abyte является  комбинацией  следующих  битов   (из
                   каждой группы выбирается одно значение):

                   0x02 - 7 битов данных            0x00    110 бод
                   0x03 - 8 битов данных            0x20    150 бод

                   0x00 - 1 стоп-бит                0x40    300 бод
                   0x04 - 2 стоп-бита               0x60    600 бод
                   0x00 - нет проверки на четность  0x80    1200 бод
                   0x08 - проверка на нечетность    0xA0    2400 бод
                   0x18 - проверка на четность      0xC0    4800 бод
                                                    0xE0    9600 бод

                   Например, если  abyte имеет следующее значение 0xEB
                   (0xE0|0x08|0x00|0x03),  то  это  устанавливает  для
                   коммуникационного порта скорость передачи 9600 бод,
                   контроль на  нечетность,  1  стоп-бит,  и  8  битов
                   данных. bioscom использует прерывание BIOS 0x14.

Возвращаемое       Для всех значений cmd bioscom возвращает шестнадца-
значение           тибитовое целое число, где 8 старших бит - это биты
                   состояния, а   8   младших   битов   варьируются  в
                   зависимости  от  значения  cmd.  Старшие   биты   в
                   возвращаемом значении имеют следующие значения:

                   бит 15 - таймаут;
                   бит 14 - передающий сдвиговый регистр пуст:
                   бит 13 - передающий регистр хранения пуст;
                   бит 12 - обнаружено прерывание;
                   бит 11 - ошибка формирования кадра синхронизации;
                   бит 10 - ошибка четности;
                   бит 9  - ошибка переполнения;
                   бит 8  - готовность данных.

                   Если значение  в  abyte  невозможно  передать,   то
                   устанавливается бит 15.  В других случаях старшие и
                   младшие   биты   устанавливаются    соответствующим
                   образом.  К  примеру,  если  возникла  ошибка кадра
                   синхронизации, то устанавливается бит 11.

                   Если cmd имеет  значение  2,  то  считываемый  байт
                   находится  в  младших  битах,  если не было ошибки.
                   Если  же  произошла  ошибка,  устанавливается,   по
                   крайней мере,  один из старших бит. Если ни один из
                   старших бит не установлен,  значит байт был получен
                   без ошибки.

                   Если cmd  имеет  значение 0 или 3,  то возвращаемое
                   значение  содержит  старшие  биты,  как  они   были
                   определены   выше,   а  младшие  биты  определяются
                   следующим образом:

                   бит 7 - прием обнаруженного линейного сигнала;
                   бит 6 - кольцевой индикатор;
                   бит 5 - набор данных готов;
                   бит 4 - готовность к передаче;
                   бит 3 - изменение в приеме детектора линейного
                           сигнала;
                   бит 2 - завершающий кольцевой детектор;
                   бит 1 - изменение в готовности набора данных;
                   бит 0 - изменение в готовности к передаче.

Переносимость      bioscom поддерживается только на компьютерах
                   IBM PC или совместимых с ними.

Пример:

#include <bois.h>
#include <conio.h>

#define COM1 0
#define DATA_READY 0x100
#define TRUE 1
#define FALSE 0
#define SETTINGS (0x80|0x02|0x00|0x00)

int main(void)
{
    int in, out, status,DONE=FALSE;
    bioscom(0, SETTINGS, COM1);
    cprintf("... BIOSCOM [ESC] to exit ...\n");
    while (!DONE)
    {
       status = bioscom(3, 0, COM1);
       if (status & DATA_READY)
          if ((out=bioscom(2, 0, COM1) & 0x7F) != 0)
               putch(out);
           if (kbhit())
           {
              if ( (in = getch()) == '\x1B')
              DONE = TRUE;
              bioscom(1, in, COM1);
           }
      }
    return 0;
}

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог