[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]

Отправлено Виноградов Алексей 08 октября 2001 г. 11:03

Об аппаратном управлении потоком при передаче данных через последовательный порт

Вот такая проблемка возникла. Есть внешнее устройство, работающее с машиной по протоколу RTS/CTS. При приеме данных в компьютер все происходит правильно. Теперь о передаче. Устройство имеет буфер приемника – 128 байт. Когда приняты 64 байта – выставляет сигнал RTS=1, машина должна ловиь этот сигнал и немедленно приостанавливать передачу. На деле все получается гораздо хуже. Машина действительно ловит этот сигнал, но после его получения успевает передать еще пару десятков байтов. Сколько именно – всегда по-разному. Посему неясно, как определить, сколько данных получено. Можно сделать это по тайм-ауту, но задолбешься его писать на AT89C51. Может, кто уже с таким багом сталкивался ?
С уважением, Виноградов Алексей

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

Ответы



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

E-mail: info@telesys.ru