[an error occurred while processing this directive]
UART и MSP430
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Alteron 12 декабря 2002 г. 12:55

Кто мне скажет, в какой момент выставляется прерывание от передатчика UART: в момент, когда вылез наружу последний бит данных, или когда уже вылез стоп бит?
Значит, почему спрашиваю: сейчас в приборе сделан полудуплексный RS-485. Так вот если переключить направление во время прерывания после прередачи последнего символа, то на другой стороне последний символ принимается битым. У меня такое подозрение, что прерывание выдаётся когда стоп бит ещё не вылез и моё переключение садит какой-то мусор на линию.

Сделал по-другому, перед передачей последнего символа устанавливаю бит LISTEN (эхо, приёмник начинает слышать свой передатчик), потом запрещаю прерывания от передатчика, разрешаю от приёмника и ложим символ в буфер. В процедуре приёмника переключаем направление. Но и здесь какая-то бадяга. Прерывание от приёмника при приёме последнего символа случаются стабильно только каждый второй раз. Т.е. во время первой посылки приёмник принял последний символ от передатчика, выставил прерывание - всё ОК. Второй раз - болт, даже флага прерывания нет, если передавать третий раз - то прерывание есть, четвёртый - нет и т.д.

Ерату смотрел - на мою серию вообще ничего нет.

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

Ответы



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

E-mail: info@telesys.ru