Re: Как с can вытащить сигнал
Спасибо, разобрался сам. Нашел проще решение из другого идентификатора сообщений
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
CANNY forum → Программируемые контроллеры CANNY 7.x (7, 7.2 duo, alfa, gamma, MGX) → Как с can вытащить сигнал
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Спасибо, разобрался сам. Нашел проще решение из другого идентификатора сообщений
Спасибо, разобрался сам. Нашел проще решение из другого идентификатора сообщений
Тем не менее:
Где-то я туплю, не выходит сигнал. Подскажите пожалуйста.
На скорости 500к, для ID=0x579 и D0=0x1С отрабатывает, если актуально - смотрите в данные или присылайте лог (нажатие и минимум 3-4 секунды после нажатия).
Tihonqq пишет:Спасибо, разобрался сам. Нашел проще решение из другого идентификатора сообщений
Тем не менее:
Где-то я туплю, не выходит сигнал. Подскажите пожалуйста.
На скорости 500к, для ID=0x579 и D0=0x1С отрабатывает, если актуально - смотрите в данные или присылайте лог (нажатие и минимум 3-4 секунды после нажатия).
Вот такую схему набросал, правда для другого ID, но при нажатии кнопки 3с есть выход на 1с. Она работает.
Спасибо.
Вот такую схему набросал, правда для другого ID, но при нажатии кнопки 3с есть выход на 1с. Она работает.
Она будет работать при появлении любого значения в D1 в котором установлен третий бит, например:
0x10
0x11
0x12
0x13
0x13
...
0x1С
...
0x30
0x3С
..
0x79
0xFF
...
и т.д.
Здравствуйте.
Сорри, что не в своей теме, пока готовлюсь к своему проекту - разбирая чужие примеры.
Есть пару вопросов:
Подскажите, почему в этом случае 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
Второй вопрос:
Что выполняется на этой диаграмме и зачем? Если не сложно, на пальцах, объясните.
Спасибо!
...Подскажите, почему в этом случае...
Полученное сообщение выглядит следующим образом:
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-го) - речь идет о двоичном представлении чисел.
...Второй вопрос:...
На фрагменте диаграммы приведен способ выделения из значения регистра принятого сообщения CAN отдельных байт и их проверки на соответствие требуемой константе.
Cпасибо.
Пока не начал переводить хекс в бин - было совсем запутано. Сейчас начало проясняться.
Чтобы отправить ответ, вы должны войти или зарегистрироваться
CANNY forum → Программируемые контроллеры CANNY 7.x (7, 7.2 duo, alfa, gamma, MGX) → Как с can вытащить сигнал