Ljutik1 (23.06.2014 16:30, просмотров: 284) ответил KLIM83 на Тогда что вы хотите настраивать, не зная подробностей об информационном взаимодействии на шине?
Мне бы сейчас занести хоть какие настройки, чтобы заработало. А в дальнейшем будет время - буду подробнее изучать. пробовал
CANGCON |= (1<<SWRES);
CANBT1 = 0x06;
CANBT2 = 0x0C;
CANBT3 = 0x37;
CANGCON |= 0x02;
- не работает. Мой контроллер постоянно на передачу. Принимающий его не видит.
передача происходит вот так:
//---------------
CANGIE &= ~(1<<ENRX); //Запретить прерывание по приему
CANPAGE = (n<<4); //Выбрать n-й канал, автоинкремент, местоположение байта данных в FIFO 0
if (CANSTMOB & (1<<TXOK)) //Если бит TXOK регистра CANSTMOB установлен в 1
{
CANSTMOB &= 0; //Сбросить регистр состояния объектов сообщений
CANIDT4 = 0x00; //Установить идентификатор
CANIDT3 = 0x00;
CANIDT2 = 0xE0;
CANIDT1 = 0x00;
for(i = 0; i < 8; i++)
{
CANMSG = datatx_buf[i]; //Запись данных в регистр данных CAN
}
CANCDMOB |= (1<<6); //Разрешение передачи,длина данных 8 байт
CANCDMOB |= (1<<3);
}
CANGIE |=(1<<ENRX); //Разрешить прерывание по приему
//---------------