Игорь пишет:накидал ещё диаграмму. будет ли жить она. в симуляторе она вроде работает. но не понятно идёт ли старт на отправку. как в нём понять идёт ли отправка в кан.
В диаграмме есть небольшие ошибки, хотя логика перехода ко второй группе CAN-сообщений, в общем, верна.
Для решения задачи в данной формулировке (отправка данных в шину CAN 125, с периодичностью раз в 100мс) можно применить и такой подход, однако правильнее, при передаче данных в буфер отправки CAN, контролировать состояние регистра готовности буфера передачи драйвера.
В исходном варианте диаграммы сообщение №0 из первой группы коммутаторов никогда не будет отправлено в буфер передачи CAN, также будет предприниматься попытка отправки сообщения с порядковым номером 32, что лежит за пределами допустимого диапазона формируемых с помощью коммутаторов сообщений CAN (в 2х коммутаторах возможные значения от 0 до 31).
Во вложении модифицированный вариант предложенной диаграммы.
Исправлено:
- убран коммутатор блок №1 (в данном случае лишний)
- блок №10 детектор заднего фронта, заменен на детектор переднего фронта (для корректного переключения номеров отправляемых сообщений)
- блок №14 сложение заменен на блок вычитание (так логичнее, хотя результат тот же)
- блок №15 коммутатор заменен на блок больше (коммутатор очень ресурсоемкий блок, а значения на входе все равно одинаковые - результат тот же).
Кроме того диаграмме свойственна та же особенность, о которой было написано в ответе №29.
Проверить, подается ли разрешение на отправку CAN-сообщения в симуляторе, как говорилось ранее можно с помощью установки контрольных точек в соответствующих местах диаграммы, пример показан на рисунке во вложении.
Вложений в сообщении 32mtocan2plus.cfd 12.68 кб, скачивался 1012 раз, последний раз 2015-12-02
32mtocan2plus_bp.png 13.96 кб, скачивался 641 раз, последний раз 2015-12-02