Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Вроде как заработало! 23.09.03 14:14 Число просмотров: 1368
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Запросто. Когда я говорил, что фифо не будет работать я > имел в виду ИМЕННО фифо. То есть порт будет работать как > старый 16450 (или как его так, у которого фифо вообще нет).
Дык почему мне приходится ИИР пулить, если фифо по-умолчанию выключено? После загрузки голого ДОСа запускается только моя прога - никто ФИФО не включает.
> Очередь запрещена по умолчанию. Если ее не включать - будет > работать только RBR (receive buffer register - можно > считать однобайтной очередью). Включается в FCR (FIFO > control register). Но кроме того придется выставлять еще > highwater (порог срабатывания прерывания) и т.д..
Что же у меня в очередь вставало? Я то ФИФО не трогал.
> Если работаешь на прерываниях, то тебе придет прерывание, > когда он освободится. Если же предпочитаешь поллить, читай > LSR (line status register) там два бита THRE (transmit > holding register empty) и TEMPT (transmitter empty). THRE > ставится в 1, когда очередной байт из буфера ушел в > передатчик (но передатчик может еще работать), а TEMPT - > когда передатчик не работает.
Прерывание, разумеется, должно произойти, когда буфер (transmit holding register) опустошится, т.е. после закидывания первого байта, если очередь не равна нулю, а потом (после заполнения очереди) с периодом передачи байтиков?
Еще я заметил, что СОМпорт "нежная" вещь. Припаял провода (~3м) к сигналам готовности. Подаю сигнал на один - и во втором тоже сигнал появлялся. Распрямил (скрученные колечком) провода и разнес друг от друга - наводка пропала.
|
|
|