Тема: CITROEN-ARDUINO
Показать сообщение отдельно
Старый 16.07.2015, 08:10   #10
Bersenev
Бывалый писикарщик
 
Аватар для Bersenev
 
Регистрация: 23.04.2009
Возраст: 53
Город: Ставрополь
Регион: 26
Машина: Opel Zafira 2007
Сообщений: 5,275
Bersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant future
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение

PS А что делает строчка?
INT32U canId = 0x000;
и отличается ли она от моей
unsigned char canId = CAN.getCanId();
Объявляет переменную canId, только в твоём случае она динамическая, так как создаётся внутри цикла.

Но самое главное у тебя здесь ошибка, так как идентификаторы могут быть 11-ти или 29-битные (в зависимости от системы адресации в конкретной can шине), а ты выделяешь под него один байт, то есть всего восемь бит.

Правильно должно быть так

unsigned long canId = CAN.getCanId();

или так

INT32U canId = CAN.getCanId();
Bersenev вне форума   Ответить с цитированием