мучаюсь несколько дней никак ни могу понять почему не получается у меня передать по кану ничего получается.
может кто подскажет что не так. у меня все время флаг form error выдает. а где я ни так что то сделал не понимаю всё по даташиту вроде.
void can_tx()
{
DDRA.1=1;
PORTA.1=1;
//CANIDT1=0x0f;
//тут
CANPAGE = 0x01;
CANCDMOB = 0;
CANSTMOB=0;
CANIDT1 = 0xFF; // IDT
CANIDT2 = 0xE0; //IDT
CANIDT3 = 0; // IDE
CANIDT4 = 0; // запрос удалеено передачи 00000101
//CANIDM1 = 0;
//CANIDM2 = 0;
//CANIDM3 = 0;
//CANIDM4 = 0;
CANMSG=0b00000001;
// conmob1 conmob0 RPVL IDE DLC3..0
// 0 1 0 0 0001
CANCDMOB = 0b01000001; // РАЗРЕШИТЬ ПЕРЕДАЧЮ ОТВЕТ НЕ НУЖЕН IDE=0(НЕРАСШИРЕННЫЙ) + DLC=1(ДЛИННА СООБЩЕНИЯ)
if (BERR==1){printf("Bit Error ");}
if (SERR==1){printf("Stuff Error ");}
if (CERR==1){printf("CRC Error ");}
if (FERR==1){printf("Form Error ");}
if (AERR==1){printf("Ackknowledgement Error busy ");}
if (TXBSY==1){printf("Tx busy ");}
while (CANGSTA & (1<<TXBSY));
DDRA.1=0;
PORTA.1=0;
}
void can_rx()
{
char tem;
DDRA.1=1;
PORTA.1=1;
CANPAGE = 0x70;
CANCDMOB = 0;
CANSTMOB=0;
CANIDT1 = 0;//b11111111; // IDT
CANIDT2 = 0;//b11100000; //IDT
CANIDT3 = 0; // IDE
CANIDT4 = 0;
CANIDM1 = 0;
CANIDM2 = 0; //маска
CANIDM3 = 0;
CANIDM4 = 0;
tem=CANMSG;
CANCDMOB=0b10000001;
//printf("CAN=",CANMSG);
putchar(tem);
DDRA.1=0;
PORTA.1=0;
if (CANSTMOB & (1<<RXOK)){
DDRA.3=1;
PORTA.3=1;
}
else
{
DDRA.4=1;
PORTA.4=1;
}
if (BERR==1){printf("Bit Error");}
if (SERR==1){printf("Stuff Error");}
if (CERR==1){printf("CRC Error");}
if (FERR==1){printf("Form Error");}
if (AERR==1){printf("Ackknowledgement Error busy");}
if (RXBSY==1){printf("rx busy");}
if (CANMSG!=0){
DDRA.2=1;
PORTA.2=1;
}
}
at90can128 -help с CAN
Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
- Реклама
Вернуться в «Микроконтроллеры и ПЛИС»
Перейти
- Наш сайт
- ↳ Сувенирная лавка Кота
- ↳ О нашем сайте...
- ↳ Опросы, конкурсы...
- ↳ Статьи
- Устройства
- ↳ Аналоговая техника
- ↳ Усилители низкой частоты
- ↳ Радиотехника: приемники, передатчики, антенны
- ↳ АвтоМотоВело
- ↳ Цифровая техника
- ↳ Микроконтроллеры и ПЛИС
- ↳ Интеграция с ПК
- ↳ Умные мысли
- Силовая электроника
- ↳ Сварочное оборудование
- ↳ Питание
- ↳ Управление двигателями
- ↳ Индукционные нагреватели
- ↳ Прочая силовая электроника
- Микроконтроллеры и ПЛИС
- ↳ AVR
- ↳ ARM
- ↳ PIC
- ↳ ПЛИС
- ↳ Периферия
- ↳ Разные вопросы по МК
- ↳ Arduino
- Обучалка
- ↳ Теория
- ↳ Практика
- Технология
- ↳ Изготовление PCB
- ↳ Корпуса
- ↳ Измерения
- Ремонт
- ↳ Не слышно, не видно
- ↳ Не стирает, не готовит
- ↳ Ничего не работает
- ↳ Дохлые потаскунчики
- Посиделки у Кота
- ↳ Травим анекдоты
- ↳ Котоссылки
- ↳ Ищу...
- ↳ МЯЯЯУ!
- ↳ Чистилище
- Базар
- ↳ Куплю
- ↳ Продам
- ↳ Отдам-Обменяю
- ↳ Есть работа
- ↳ Ищу работу
- ↳ Базарные разговорчики