Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Дата и Время    >>    vectors
   
 
 Использование COM-порта как таймера под Win  Виктор ? 04.01.1995

Программирование портов и таймера RS-232 для формирования и обработки прерываний от СОМ-порта, синхронизированных по времени



2k 
 

Здравствуйте все! В последнее время проявлен некоторый интерес к обработке аппаратных прерываний под Win. Ниже приводится модуль, в котором решается задача, возникшая у меня в процессе создания ПО для обработки телеграфных сигналов - получение строго фиксированных интервалов времени в 1, 2 или 5 мс. В ДОС проблем не было - перепрограммировал таймер новым делителем, "вешал" обработчик нa int08 и все дела. В Windows перепрограммировать таймер нельзя (эти ужасные 55 мс!), поэтому самым простым показалось использование прерывания от свободного СОМ-порта. - изготавливаем "заглушку" на СОМ-порт, заведя линию передачи Tx на линию передачи Rx, DTR на DSR, а также соединяем вместе три сигнала: RLSD, RTS и CTS; - вешаем обрабочик прерываний на $0C для СОМ1 или $0B для СОМ2 таким образом, что, передавая символ в линию, мы его же и получаем, что возбуждает прерывание по приему символа; в обработчике снова записы- ваем символ в порт передачи и пошло-поехало... - программируем UART на нужную скорость и, тем самым, добиваемся нужного интервала времени. Если будут вопросы, готов ответить. Виктор