Проблема с оператором if

Можно тупо подставить перед if это:

rxId = 0x7DF;
if(rxId == 0x7DF)…

для теста. Может и правда if залип ахаха.

1 лайк

Тогда If оттуда вылетит на этапе компиляции и залипать будет нечему.

Тогда вводить через монитор порта :slight_smile:

Да! ещё лучше выводить чего там в этой загадочной переменной rxId.

В том и дело, if залип на true хотя никаких переменных изначально он не получает, вернее он получает только тип. Если я включу сл if то залипает уже второй и возвращает его функцию. То же и с третьей функцией которая уже без оператора.

У меня утро и я готов к новым пробам и ошибкам.
Попробую как вы намекнули использовать &. И др варианты из ленты.

Если честно, я нифига не понял

Функция после оператора начинает работать в цикле даже без получения данных. То есть как бы строки с if вообще не существует.

Так не бывает. Нужно смотреть значение переменной, так гадать смысла нету

2 лайка

какая именно функция?
У вас внутри этого if только одна функция - вот эта, строка 88

А после закрытия скобки блока - вот эта:

строка 124
Они отличаются только интерфейсом КАН.
То есть мессадж у вас посылается всегда.

Вы уверены, что отличите сообщение по КАН0 от сообщения по КАН1 ?

(только не пишите, что это идиотский вопрос - я же не знаю, как у вас там все организовано, может у вас КАН0 и КАН1 в одну и ту же шину смотрят)

какая именно функция?
У вас внутри этого if только одна функция - вот эта, строка 88

Задача- отловить с CAN0 посылку с определенным ID и определенным набором данных- 0x7DF,0x02,0x09,0x02 затем изменить ID и данные и отправить обратно в CAN0. Иначе отправить все в CAN1 без изменений.

[

Вы уверены, что отличите сообщение по КАН0 от сообщения по КАН1 ?

(только не пишите, что это идиотский вопрос - я же не знаю, как у вас там все организовано, может у вас КАН0 и КАН1 в одну и ту же шину смотрят)
[/quote]

Шины смотрят в разные концы. Я стою в разрыве между ними

Ну так вы уверены, что этот ID не приходит? Вы смотрели его значение?

пожалуйста, цитируйте сообщения правильно - чтобы было видно, где ваш текст, а где цитируемый

Сорри исправлюсь. Я с телефона

Поставьте на строке 75 вывод rxId в сериал

ID должен начать приходить с CAN0, но к ней ничего не подключено сейчас

Да, попробую сегодня

Так вы УВЕРЕНЫ, что этот ID не имеет место быть? Вы проверяли? Поставьте уже вывод в сериал и смотрите, что у вас там крутится

1 лайк

тогда там, наверно, мусор, который может случайно (или не случайно) совпасть с нужным ИД
Проще поставить вывод в Сериал и посмотреть, что происходит.