1

Тема: Разные алгоритмы .

Есть две диаграммы, они одинаковые за исключением регистров байт D1:D0 и D2:D3 но алгоритм работы очень разный , почему ?

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

Иконка вложения 1.png 88.8 кб, скачивался 197 раз, последний раз 2017-02-05 

2

Re: Разные алгоритмы .

И вот второй.

3

Re: Разные алгоритмы .

Не вставился скрин...

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

Иконка вложения 2.png 88.91 кб, скачивался 195 раз, последний раз 2017-02-05 

4

Re: Разные алгоритмы .

Могу предположить, что на месте блока #2 в обеих диаграммах подразумевался скорее Логическое И, а не Логическое ИЛИ.

5

Re: Разные алгоритмы .

Добрый вечер , спасибо за оперативность, если поставить логическое И тогда диод на выходе не светится а мигает примерно с частотой получаемых сообщений.
P.S. Пока тренируюсь с помощью CAN анализатора.

6

Re: Разные алгоритмы .

Используйте D-триггер для сохранения значений между моментами приема сообщений. См.: http://wiki.canny.ru/index.php?title=CA … 1.80.D1.8B

7

Re: Разные алгоритмы .

Все равно не получилось... если нужные мне байты находятся в разных регистрах то все работает отлично но если в одном то получаются косяки.

8

Re: Разные алгоритмы .

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

9

Re: Разные алгоритмы .

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

10 (05-02-2017 23:56:51 отредактировано tutun2005)

Re: Разные алгоритмы .

Хмм... хотя тоже с проблемами... без проблем когда соседний байт в нулях. Если бы был вариант записи например 0х04ХХ, чтобы программа сравнивала только один байт с регистра или регистр содержал только один байт или я что то пропустил в руководстве?

11

Re: Разные алгоритмы .

Выделить один байт из регистра вам поможет блок Побитовое И. Посмотрите примеры здесь: http://forum.canny.ru/viewtopic.php?id=205

12

Re: Разные алгоритмы .

Да , но в таком случае диод будет загораться и при других значениях байта, то есть в которых на том же месте будет 1.
Например 0х04 = 0b00000100 и 0х05 = 0b00000101 и там и там третий бит 1 и диод горит.

13

Re: Разные алгоритмы .

Пожалуйста, сформулируйте задачу более конкретно - какие биты (байты?) какие значения должны содержать, в каких регистрах. Что именно по каким условиям делать? Опишите простыми словами, например: "при наличии в сообщениях с ID 0x123 в байтe D0 значения 04 одновременно с наличием в байте D3 значения 1А - держать светодиод включенным."

14

Re: Разные алгоритмы .

Например : при получении сообщения с ID 123  01 ХХ ХХ ХХ ХХ ХХ ХХ ХХ светодиод горит,
ID 123  ХХ 04 ХХ ХХ ХХ ХХ ХХ ХХ  тоже горит , ID 123  01 04 ХХ ХХ ХХ ХХ ХХ ХХ снова горит,
а в остальных случаях нет, ХХ это любое значение от 00 до FF.

15

Re: Разные алгоритмы .

tutun2005 пишет:

Например : при получении сообщения с ID 123  01 ХХ ХХ ХХ ХХ ХХ ХХ ХХ светодиод горит,
ID 123  ХХ 04 ХХ ХХ ХХ ХХ ХХ ХХ  тоже горит , ID 123  01 04 ХХ ХХ ХХ ХХ ХХ ХХ снова горит,
а в остальных случаях нет, ХХ это любое значение от 00 до FF.

Вариант решения.

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

Иконка вложения 3.png 50.53 кб, скачивался 193 раз, последний раз 2017-02-06 

16

Re: Разные алгоритмы .

Спасибо работает. Теперь понял в чем была моя ошибка.