На входе протокол "DMX-512". Суть его такова, что есть сигнал "Break"=0 и длительностью не менее 88 мкс (22 символа) за которым идет сигнал "MaB"=1 и длительностью не менее 2-х символов. В общем, проблема в этом "Break". Ловлю его по Прерыванию "RXBRK" но вся беда в том, что UART после этого не дожидается высокого уровня MaB, а сразу переходит на прием, ведь "Break" еще продолжается. Из положения вышел так: После ловли "RXBRK" отключаю UART и включаю RX-pin на внешнее прерывание ожидая прихода "MaB". По приходу "MaB" снова перехожу на прием. Все идеально работает-- проблема решена, но камень на душе остался. UART должен ждать стопа после прихода "RXBRK" или "Frame Error", или же если на линии продолжаестя низкий уровень начинать новый прием???
|