Тема: Можно ли сделать фильтр при работе с UART?
Здравствуйте
Вопрос возник из следующей ситуации: на контроллера нано организована работа диаграммы с получением и отправкой данных UART.
Диаграмма довольно объемная, также задействована передача IR.
Суть проблемы в том, что при исполнении "вживую", перестала схема реагировать на посылку в шине, когда она идет (при определенных условиях) в "пакете" подобных (с одинаковым адресом отправителя и получателя".
Если отправлять эту посылку "одиночно" - то все ок. Походу нано просто перегружен и "не успевает" ее обработать и среагировать.
Если отдельно загрузить фрагмент обработки этого сообщения:
То все ок. Стало быть логика не нарушена. Но как только диаграмма в контроллер загружается вся - происходит описанное выше. Идет "плотный" по времени набор сообщений и он "пропускается" мимо.
Прикрутил кан для мониторинга происходящего в UART - так и есть. Часть посылок из "пакета" передается в кан из уарта, часть просто теряется. При этом нет зависимости от длинны сообщения.
Я уже с похожим сталкивался при работе с кан шиной. Тогда вопрос решился "разгрузкой" контроллера путем установки фильтров по идентификатору.
Собственно прошу совета - как можно при работе с UART избавить контроллер от "лишней" работы? Можно построить фильтр подобно как на кане? Назначить бит, как условие фильтра. И дальше работать только с "профильтрованными" посылками?
Вот еще часть моих "фильтров"
Будет ли "легче" работать контроллеру, если добавить сначала условие отсева по отправителю и, допустим, длине сообщения? А уже потом так, как на диаграмме?
Спасибо! Буду рад советам и подсказкам.
эти варианты равнозначны с точки зрения функционала? Так получится хоть что-то выиграть? Таких "переделок" по диаграмме можно штук 5-6 сделать.
Или вообще дело может быть не в этом?