CAN настроен, включены мобы с 0 по 7й, исходящие кадры уходят и принимаются другим устройством (другое устройство- это дисплей, я визуально вижу приходящую информацию, она совпадает с той, что я задумал отправить)
есть дисплей в автомобиле, на нем две кнопки- нажатие первой вызывает информацию борткомпьютера (сама информация БК приходит уже в другом кадре, с другим id ! ), повторное нажатие первой- переключает на часы, нажатие второй- вызывает информацию с датчика внешней температуры, повторное нажатие этой же (второй кнопки) возвращает к отображению внутренней температуры (и снова, информация о температурах приходит в другом кадре, с другим id ! ).
для обеих кнопок один can-кадр c id 401, судя по программе CANHACKER, он содержит 1 байт, в котором изменяются разные биты в реакцию на нажатие одной или другой кнопки.
Исходя из этих данных, я так понял, что это похоже на удаленный запрос, а ловил я кадр с id 401 как простой кадр приема- может поэтому он и не проходил процедуру сравнения и в статусе этого "моба на прием" не было RxOK, там вообще ничего, он в "0".
Может мне кто нибудь разъяснить как принять удаленный запрос? В даташите атмела (и в русской версии) очень скудно написано, "при удаленном запросе нужно выставить бит RTRTAG". Ну понятно что если ждем удаленный запрос, то нужно выставить бит RTRTAG в CANIDT4, но для чего там же RB0TAG, как его выставить? и для чего в CANIDM4 биты RTRMSK и IDEMSK- их как выставлять в этом случае?
Сообщение отредактировал Alexeus - Feb 27 2010, 09:13
|