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

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

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

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

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

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

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

 
Опции темы

Код для обработки CAN сообщений AT90CAN128

Непрочитано 02.08.2010, 22:30  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

Сообщение от XoDoK11 Посмотреть сообщение
В Протеусе или еще где проект можно смоделировать?
Боюсь что нигде - тока железо плюс осцил http://www.avrfreaks.net/index.php?n...=77881&start=0
Реклама:
harchenko_pavel вне форума  
Непрочитано 02.08.2010, 22:43  
LexaryStyle
Частый гость
 
Регистрация: 16.09.2006
Сообщений: 15
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LexaryStyle на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

Интересная штука, добавил код реакции на кнопки и вывод на светодиод:

Цитата:
while(1)
{
if (!(PINE & 0b00100000)) //if button is pressed (Bit5 = 0)
{
PORTB = PORTB & 0b11101111; //led on (Bit4 = 0)
CAN_SEND (MyMessage);
}
else
{
PORTB = PORTB | 0b00010000; //led off (Bit4 = 1)
}

if (!(PINE & 0b01000000)) //if button is pressed (Bit6 = 0)
{
PORTB = PORTB & 0b11110111; //led on (Bit3 = 0)
CAN_SEND (MyMessage);
}
else
{
PORTB = PORTB | 0b00001000; //led off (Bit3 = 1)
}


}
Светодиоды горят в пол силы, на выводе стабильно 2.4 вольта примерно..

Заливаю просто отдельный проект:
Цитата:
while (1)

{
//avoiding reset of the program
if (!(PINE & 0b00100000)) //if button is pressed (Bit5 = 0)
{
PORTB = PORTB & 0b11101111; //led on (Bit4 = 0)

}
else
{
PORTB = PORTB | 0b00010000; //led off (Bit4 = 1)
}

if (!(PINE & 0b01000000)) //if button is pressed (Bit6 = 0)
{
PORTB = PORTB & 0b11110111; //led on (Bit3 = 0)

}
else
{
PORTB = PORTB | 0b00001000; //led off (Bit3 = 1)
}

}
Светодиоды горят нормально. Для меня какая то мистика...
LexaryStyle вне форума  
Непрочитано 02.08.2010, 22:50  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

а регистр DDRB на выход настроили DDRB=0xff;
А зачем такие сложности
PHP код:
PORTB = PORTB & 0b11101111; 
 PORTB = PORTB | 0b00010000; 
не проще написать
PHP код:
PORTB |=(1‹‹4);
 PORTB &=~(1‹‹4) 

Последний раз редактировалось harchenko_pavel; 02.08.2010 в 22:56.
harchenko_pavel вне форума  
Непрочитано 02.08.2010, 23:11  
LexaryStyle
Частый гость
 
Регистрация: 16.09.2006
Сообщений: 15
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LexaryStyle на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

В кан версии добавил функцию:

Цитата:
void Port_INIT()
{
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0xFF;

// Port E initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTE=0x00;
DDRE=0x00;
}
LexaryStyle вне форума  
Непрочитано 02.08.2010, 23:20  
harchenko_pavel
Прописка
 
Регистрация: 28.09.2006
Сообщений: 144
Сказал спасибо: 11
Сказали Спасибо 95 раз(а) в 51 сообщении(ях)
harchenko_pavel на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

Сообщение от LexaryStyle Посмотреть сообщение
В кан версии добавил функцию:
2.5В это z состояние. Даже не знаю, а функция вызвана
PHP код:
void main(void)
{
    Port_INIT(); //Инициализируем порты
    CAN_Message_t MyMessage;
    MyMessage.IDT = 0x0F7AF0F4;
    MyMessage.DLC = 5;
    strncpy (&MyMessage.data[0], "Hallo", MyMessage.DLC);
    CAN_INIT();
    while(1)
    {
        CAN_SEND (MyMessage);
    }
} 
harchenko_pavel вне форума  
Сказали "Спасибо" harchenko_pavel
LexaryStyle (02.08.2010)
Непрочитано 02.08.2010, 23:29  
LexaryStyle
Частый гость
 
Регистрация: 16.09.2006
Сообщений: 15
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LexaryStyle на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

Сообщение от harchenko_pavel Посмотреть сообщение
2.5В это z состояние. Даже не знаю, а функция вызвана
Невнимательность, пока разбирался временно удалил вызов этой функции, только после вашиго замечания решил проверить.

Сегодня прикручу драйвер, посмотрю что на линии будет. Подскажите КАН Хакер или снифер проверенный на личном опыте!?
LexaryStyle вне форума  
Непрочитано 03.08.2010, 22:52  
LexaryStyle
Частый гость
 
Регистрация: 16.09.2006
Сообщений: 15
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LexaryStyle на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

Ребят подскажите как с помощью вышеописанного кода обработать принятые сообщения?
LexaryStyle вне форума  
Непрочитано 20.08.2010, 18:59  
LexaryStyle
Частый гость
 
Регистрация: 16.09.2006
Сообщений: 15
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LexaryStyle на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

На какой скорости надо подключаться кан хакером к устройству с данным кодом?

#define BRP_100_16 9
#define SJW_100_16 0
#define PRS_100_16 6
#define PHS2_100_16 3
#define PHS1_100_16 3
#define SMP_100_16 1


CANBT1 = (BRP_100_16 ‹‹ 1); /* BIT TIMING*/
CANBT2 = (PRS_100_16 ‹‹ 1) | (SJW_100_16 ‹‹ 5);
CANBT3 = (PHS2_100_16 ‹‹ 4) | (PHS1_100_16 ‹‹ 1) | (SMP_100_16);

При 16Мгц кварца.

Последний раз редактировалось LexaryStyle; 22.08.2010 в 21:40.
LexaryStyle вне форума  
Непрочитано 25.05.2011, 15:45  
kaneghost
Прохожий
 
Регистрация: 25.05.2011
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kaneghost на пути к лучшему
По умолчанию Re: Код для обработки CAN сообщений AT90CAN128

А есть у кого пример для CVAVR в котором есть функции Инциализация CAN как мастер, как слайв, передача по CAN, прием по CAN?
сижу 3 день не могу дупля врезать.
kaneghost вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
[Решено] Третье Послание Человечеству lelkanet Отвлекитесь, эмбеддеры! 201 06.01.2010 00:33
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


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


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