Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Помогите разобраться что не так at90can128 CAN

Непрочитано 28.05.2011, 21:58  
kaneghost
Прохожий
 
Регистрация: 25.05.2011
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kaneghost на пути к лучшему
По умолчанию Помогите разобраться что не так at90can128 CAN

мучаюсь несколько дней никак ни могу понять почему не получается у меня передать по кану ничего получается.
может кто подскажет что не так. у меня все время флаг 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;
}
}
Реклама:
kaneghost вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эрудиция и смекалка slavar1 Отвлекитесь, эмбеддеры! 13012 05.10.2025 09:34
[Решено] Третье Послание Человечеству lelkanet Отвлекитесь, эмбеддеры! 201 06.01.2010 00:33
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03
Водка и как с ней бороться SerjT Отвлекитесь, эмбеддеры! 108 29.09.2009 21:25


Часовой пояс GMT +4, время: 03:12.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.