прерывания COM1 порта

Тема в разделе "WASM.HARDWARE", создана пользователем DRAHM, 17 мар 2007.

  1. DRAHM

    DRAHM New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    12
    Недавно начал писать программу которая через подключенный к COM1 порту IR датчик ловит инфра красный сигнал от (пульта от телевизора или брелка от сигнализации).Не вдаваясь в подробности получается так что программа в цикле сканирует порт 0x3fe при этом загрузка ЦП (70-90%).Далее (оснавная программa написана на С++BUILDER 6 ) чтобы снизить загрузку ЦП решил воспользоваться таймером результат ни такой как хотелось бы дело в том например пульт от ТВ при нажатии на кнопку сначала посылает сигнал длинный затем 24 коротких а паузы между ними длинные 1, короткие 0,т.е. 24 битовый код на а таймер может включить сканирования порта когда пульт уже весь или половину кода передал .Так что реакция на нажатие кнопки 2 из 7 . А теперь решил написать драйвер для обслуживания прерывания от COM1 столкнулся с такой проблемой через регистры порта устанавливаю прерывания по изменению (DSR,CTS,DCD) и все "колом" нет прерывания а срабатывает оно когда я читаю порт 0x3fe.
    Вопрос в том может в регистры COM порта надо еще что то записать чтобы прерывание происходило сразу ?
    Или вообще прямого прерывания от него нет и оно происходит при считывании регистров состояния.
     
  2. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    Больше чем по программированию COM-порта, ссылок только на порносайты. Под все мыслимые OS. Не говоря уже о том, что все написано в документауии на chip. Google в помощь ... посмотрите это: h**p://w*w.codeguru.com/network/Serial_CommunicationSource.zip