26

Re: Как с can вытащить сигнал

Спасибо, разобрался сам. Нашел проще решение из другого идентификатора сообщений

27

Re: Как с can вытащить сигнал

Tihonqq пишет:

Спасибо, разобрался сам. Нашел проще решение из другого идентификатора сообщений

Тем не менее:

Где-то я туплю, не выходит сигнал. Подскажите пожалуйста.

На скорости 500к, для ID=0x579 и D0=0x1С отрабатывает, если актуально - смотрите в данные или присылайте лог (нажатие и минимум 3-4 секунды после нажатия).

28 (03-03-2016 21:15:23 отредактировано Tihonqq)

Re: Как с can вытащить сигнал

Константин, CANNY пишет:
Tihonqq пишет:

Спасибо, разобрался сам. Нашел проще решение из другого идентификатора сообщений

Тем не менее:

Где-то я туплю, не выходит сигнал. Подскажите пожалуйста.

На скорости 500к, для ID=0x579 и D0=0x1С отрабатывает, если актуально - смотрите в данные или присылайте лог (нажатие и минимум 3-4 секунды после нажатия).

Вот такую схему набросал, правда для другого ID, но при нажатии кнопки 3с есть выход на 1с. Она работает.
Спасибо.

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

Иконка вложения audi-кнопка2.cfd 1.18 кб, скачивался 284 раз, последний раз 2016-03-03 

29

Re: Как с can вытащить сигнал

Tihonqq пишет:

Вот такую схему набросал, правда для другого ID, но при нажатии кнопки 3с есть выход на 1с. Она работает.

Она будет работать при появлении любого значения в D1 в котором установлен третий бит, например:
0x10
0x11
0x12
0x13
0x13
...
0x1С
...
0x30
0x3С
..
0x79
0xFF
...
и т.д.

30

Re: Как с can вытащить сигнал

Здравствуйте.

Сорри, что не в своей теме, пока готовлюсь к своему проекту - разбирая чужие примеры.
Есть пару вопросов:
Подскажите, почему в этом случае 0000100000000000 ?  Ведь единица тут стоит на позиции 5, а у нас бит меняется на позиции 4.

d382 01 80 04 00 84 00 1f 00
и
id382 01 88 04 00 84 00 1f 00

          00  00 10 00 00 00 00 00

Второй вопрос:
http://forum.canny.ru/misc.php?action=pun_attachment&item=120&download=0

Что выполняется на этой диаграмме и зачем? Если не сложно, на пальцах, объясните.

Спасибо!

31

Re: Как с can вытащить сигнал

alex_engine пишет:

...Подскажите, почему в этом случае...

Полученное сообщение выглядит следующим образом:
id    D0   D1   D2   D3   D4   D5   D6   D7   
382  01   80   04   00   84   00   1f    00 (все значения hex)

Изменения происходят в байте D1 c 0x80 на 0x88.
Регистр принятого сообщения CAN D1:D0 (этого сообщения), таким образом, выглядит так: 80 01 (байты записываются в обратном порядке) и меняются на 88 01
Значение регистра является 16-битным числом и обрабатывается как одно число.
Т.о. D1:D0 = 0x8001 = 0b1000000000000001 до изменения;
       D1:D0 = 0x8801 = 0b1000100000000001 после изменения;
                                     0b0000100000000000 - отличие.
т.е. отличается только 11-м битом (отсчет справа начиная с 0-го) - речь идет о двоичном представлении чисел.

alex_engine пишет:

...Второй вопрос:...

На фрагменте диаграммы приведен способ выделения из значения регистра принятого сообщения CAN отдельных байт и их проверки на соответствие требуемой константе.

32

Re: Как с can вытащить сигнал

Cпасибо.
Пока не начал переводить хекс в бин - было совсем запутано. Сейчас начало проясняться.