Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос по CAN в 18Fxx8
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
valeroon
Помогите разобраться.Пытаюсь освоить CAN на базе 18f458.Экспериментирую на одном контроллере в режиме LOOP.Сконфигурировал по самому простому варианту с использованием одного буфера -0.Все маски сброшены,идентификатор-расширенный,прием по прерыванию RXB0IF.Принять сообщение удается только в режиме RXM1-RXM0=11(все сообщения).При RXM1-RXM0=10 ничего.Посоветуйте как решить проблему.
Madeveloper
PDF: Mode 0:

10 = Receive only valid messages with extended identifier; EXIDEN in RXFnSIDL must be ‘1’

Если используешь расширенную адресацию, EXIDEN должен быть выставлен.
valeroon
Есть движение в лучшее будущее.При конфигурировании на прием-передачу стандартного ИД. все работает как надо.А EXIDEN (когда пытался работать с расширенными сообщениями был установлен)
НЕ ПОНЯТНО где проморгал?
Madeveloper
CAN_Init();

ECANCON = 0;
RXB0CON = 0b01000000;
RXF0SIDL = 0b00001000;
RXM0SIDL = 0b00000000;
RXM0SIDH = 0b00000000;
RXM0SIDL = 0b00000000;
RXM0EIDH = 0b00000000;
RXM0EIDL = 0b00000000;

CAN_Mode(Mode_Loopback);

Специально проверил - работает (правда на 18F4585)
Может не учли что после выхода из режима конфигурирования маски и EXIDEN менять нельзя?
Всмысле сначала все устанавливаем, а потом только в Loopback переходим.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.