[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
... потому, что из-за специфики устройства передача/прием осуществляются по одной линии.
Поэтому я включаю прием только когда нужно принять данные,
в остальное время линию занимает передача.
под "теряется" я имею ввиду следующее:
первый раз передаю с COM-порта байты A1 A2 A3 A4 A5 - все ОК - на PIC
принимаю те же 5 байт (A1 A2 A3 A4 A5)
второй раз передаю с COM-порта байты A1 A2 A3 A4 A5, а на PICе принимаю только A3 A4 A5, два первых байта растворяются...
включаю прием вовремя - т.е. опаздание исключено вроде :(
Единственно, что меня смущает - не напрасно ли я после приема
каждого байта включаю/выключаю передатчик (чтобы сбросить
бит OERR - если он вдруг установился)? Может быть следует проверять
его установку - и только в этом случае запрещать/разрешать прием?
Я еще грешил на подпрограмму обработки прерываний, но если бы
в ней было что-то не так, то по идее прием вообще не работал бы...
С уважением, Alowolf
E-mail: info@telesys.ru