[an error occurred while processing this directive] [an error occurred while processing this directive]
Некоторые соображения по поводу(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено misyachniy 24 сентября 2001 г. 12:11
В ответ на: Противный и скользкий вопрос об управлении потоком на COM - порту (+) отправлено Виноградов Алексей 21 сентября 2001 г. 22:38

--------
По поводу не соответствия размеров буфера и пересылаемого блока.

Буфер это "бассейн" в которую заливается приходящая информация.
Если программа успевает "вычерпывать из бассейна воду" то размер блока не имеет никакого отношения к размеру буфера.

Думаю если программу запустить на 486DX33 на старом HDD и 16M памяти,
то будет происходить потеря информации.

--------
Сигнал RTS

Размер приемного и передающего буферов в последовательном порте
16 байт. Сигнал RTS может и должен выставляться не при полном заполнении а за несколько байт до этого.

В WIN при настройке удаленного соединения есть возможность выставлять этот параметр.

------
Дальше, а что будет, если в момент прихода байта в порт машина занята, например, обрабатывается более приоритетное прерывание.

Обычно драйвера защищают критические участки программ.
Так как для приема байта требуется всего несколько операторов то
ставят первую комманду запретить прерывание. При выходе из прерывания разрешают.
И более приоритетное прерывание "не отберет" процессор.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru