Недавно начал писать программу которая через подключенный к COM1 порту IR датчик ловит инфра красный сигнал от (пульта от телевизора или брелка от сигнализации).Не вдаваясь в подробности получается так что программа в цикле сканирует порт 0x3fe при этом загрузка ЦП (70-90%).Далее (оснавная программa написана на С++BUILDER 6 ) чтобы снизить загрузку ЦП решил воспользоваться таймером результат ни такой как хотелось бы дело в том например пульт от ТВ при нажатии на кнопку сначала посылает сигнал длинный затем 24 коротких а паузы между ними длинные 1, короткие 0,т.е. 24 битовый код на а таймер может включить сканирования порта когда пульт уже весь или половину кода передал .Так что реакция на нажатие кнопки 2 из 7 . А теперь решил написать драйвер для обслуживания прерывания от COM1 столкнулся с такой проблемой через регистры порта устанавливаю прерывания по изменению (DSR,CTS,DCD) и все "колом" нет прерывания а срабатывает оно когда я читаю порт 0x3fe. Вопрос в том может в регистры COM порта надо еще что то записать чтобы прерывание происходило сразу ? Или вообще прямого прерывания от него нет и оно происходит при считывании регистров состояния.
Больше чем по программированию COM-порта, ссылок только на порносайты. Под все мыслимые OS. Не говоря уже о том, что все написано в документауии на chip. Google в помощь ... посмотрите это: h**p://w*w.codeguru.com/network/Serial_CommunicationSource.zip