1 (24-01-2018 16:05:38 отредактировано JustFry)

Тема: Помогите начинающему, с реализацией памяти состояния...

Здравствуйте ! Принимайте новенького smile

Мой девайс приедет к концу недели, пока обкатываю задачу на симуляторе

Задача следующая, в машинке нет памяти состояния рециркуляции салона, что приводит к тому, что после каждого старта двигателя через пару секунд заслонка открывается. Я хочу реализовать "память" заслонки при включенном зажигании.
Логика такова: при включенном зажигании канни запоминает состояние заслонки при её переключнии и после следующего запуска восстанавливает её состояние (с задержками).

Но никак не могу понять как писать в CAN... вернее в прицепе поидее я пишу, а что пишу не пойму )))

Вопрос: как по условию равенства отправить в CAN IDL 0x0001 D1:D0 - 50, а в случае неравенства условия CAN IDL 0x0002 D3:D2 - 80 ? Просто в этом проекте я еще захочу подвигать руль, но это чуть позже... я так понял только триггеры ?

Да и в целом, какие косяки в моём труде ?

С уважением Андрей...

Вложений в сообщении

Иконка вложения Рециркуляция.cfd 3.75 кб, скачивался 342 раз, последний раз 2018-01-24 

2

Re: Помогите начинающему, с реализацией памяти состояния...

В части передачи в CAN у вас не все гладко: в Регистр начала передачи CAN следует давать единичный импульс, или периодические единичные импульсы если надо отправить несколько сообщений, а не держать там единицу постоянно, так как в этом случае будет идти непрерывная передача забивающая все данные в CAN.

Есть типовые примеры передачи в CAN в документации: http://wiki.canny.ru/index.php?title=CA … 0.B8.D0.B9

3

Re: Помогите начинающему, с реализацией памяти состояния...

О, спасибо ! А то я то-же думал, что как-то не красиво выглядит... Не сразу понял зачем детекторы нужны.
Теперь только вопрос к симулятору... если я в симуляторе пишу единицу в CAN IDL 0x0101 D3:D2, то она в блоке чтения этого регистра не появляется. Так и должно быть ? Или у меня что-то не так работает ?

В примере если включить зажигание, включить рециркуляцию, выключить зажигание, выключить рециркуляцию, а затем включить зажигание, то по идее должна произойти запись единицы в регистр IDL 0x0101 D3:D2... но "Рег.Чтен CAN D3:D2" остается равным нулю...

4

Re: Помогите начинающему, с реализацией памяти состояния...

Симулятор позволяет отлаживать только логику диаграммы, работа периферии контроллера (регистров) в симуляторе не реализована. Но даже если бы работала - контроллер не принимает те сообщения CAN, которые отправил сам.