Help! Вопрос по CANBUS в C8051F040.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Tow 03 октября 2003 г. 12:59

Нужно работать по принцыпу запрос/ответ.
Настраиваю маску и арбитражный регистр (Например что бы узел отзывался только на второй адрес
CAN0ADR = IF1ARB1;
CAN0DAT = 0x0000;
CAN0DAT = 0x8008;

CAN0ADR = IF1MSK1;
CAN0DAT = 0x0000;
CAN0DAT = 0x4FF7;
)
Так вот.
Когда читал описание то думал, что когда я настрою маску и арбитражный регистр, то прерывание уведомляющее о приёме сообщения, будет выставлено только ТОГДА, КОГДА полученое сообщение удовлетворяет требованиям маски и арбитражного регистра. А у меня прерывание выставляется на запросы с любым адресом . Но при этом если адрес не совпал с арбитражным регистром то в регистрах данных нули.
И ещё. Данные не принимаются от ПК (регистрах данных нули) при запросе с адресами отличными от Addr = 2 как и оговаривалось. Но как только сделаю передачу от ПК с Addr = 2, то потом узел начинает получать данные при запросе с любым адресом.

UMask,Mask,Dir,MDir и т.д. и т.п сконфигурированы.

Скажите пожалуйста, как сделать что бы прерывание отрабатывалось только тогда, когда приходит запрос с соответствующим адресом?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru