1

Тема: приём LIN и отправка ИК

Изменение LIN  ID 010   D0-D1 0-2-4-6-8-А-С-0-2 и так по кругу(это кнопки руля), второй и четвёртый бит. При нажатии на кнопку значение изменяется и остаётся в этом состоянии до следующего нажатия. При каждом нажатии отправляем однократно команду по ик. Буду признателен если проверите. А так же, можно ли это подукоротить и упростить.

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

Иконка вложения readlin1.cfd 13.7 кб, скачивался 363 раз, последний раз 2016-03-14 

2

Re: приём LIN и отправка ИК

На вскидку:
На выходе блока №1, "Равенство" может быть только два значения "1", если сравниваемые значения равны или "0", если не равны. У вас далее к результату сравнения применяются побитовые операции - блоки №№ 3, 10, 19, 24 ... что похоже не имеет смысла, так как они у вас работают с битами, которых никогда не будет установлено в их входных значениях.

По оптимизации - я бы сначала запоминал данные LIN D0:D1, затем сравнивал с предыдущим запомненным значением, и если значение изменилось - выбирал бы и отправлял команду ИК. Частично проиллюстрировано здесь: http://forum.canny.ru/viewtopic.php?pid=4741#p4741

3

Re: приём LIN и отправка ИК

Спасибо. Слегка проанализировав LIN заметил, что при изменении между чётными проскакивают нечётные значения в битах. Вот их как раз я буду использовать как команду к отправке ик команд, в следствии чего диаграмма слегка упроститься. К вечеру постараюсь выложить диаграмму на Ваш суд.

4

Re: приём LIN и отправка ИК

Ну собственно вот она. В симуляторе проверил, работает.

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

Иконка вложения readlin1.cfd 13.5 кб, скачивался 414 раз, последний раз 2016-03-15