Сообщение от nml
|
В обработчике прерывания на самом деле пусто?
Тогда так и будет. Ибо пришел байт, выставился флаг запроса прерывания. Идем в прерывание и выходим. А флаг-то стоит! Он сбрасывается при чтении UDR. То есть вышли из прерывания, выполнили одну команду и обратно.
|
Вот Вы сказанули , я ажно поперхнулся, ушёл с Работы забыв куртку и деньги ...опомнился только , когда за проезд пришлось платить (благо мелочь в брюках была)....
Всё верно .я действовал по классике (FE ? UPE ? DOR) верны ? тогда читаем UDR. Но не учёл , что это в прерывании , и если байду подсуну , то никакого чтения UDR не будет.А байду я и подсовывал! - у меня мультипроцессорная система на 30 клиентов , и физически не мог всех перепрошивать , когда параметры Сервера менял ...я был больше озабочен 9-й бит не потерять , который нужно заранее сохранить ....Вот и подсовывал от сервера всякую муйню , вплоть , когда уже в отчаяние перешёл - отвёрткой старт бит. Она меня вежливо посылала ...
(...When the Receive Complete Interrupt Enable (RXCIE) in UCSRB is set, the USART
Receive Complete Interrupt will be executed as long as the RXC Flag is set (provided
that global interrupts are enabled). When interrupt-driven data reception is used, the
receive complete routine must read the received data from UDR in order to clear the
RXC Flag, otherwise a new interrupt will occur once the interrupt routine terminates...) .... и по Вектору после каждой операции заглядывала , на RETI....
Я чуть не поседел, тупица я.
Жестокий Вы . СПАСИБО!

PS А до пустышки я уж дошёл всё вырезая вусмерть , остался скелет , который вёл себя аналогичным образом.
поставлю
|
Код:
|
bit_rx8=UCSRB & (1‹‹RXB8);
data=UDR; |
ДО проверки истинности Данных .А там уже буду смотреть, что пришло.
Ещё раз СПАСИБО!