Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 28.01.2019, 10:25   #1
alxdr
Senior Member
 
Регистрация: 03.01.2009
Сообщений: 129
Вес репутации: 394/42
alxdr is just really nicealxdr is just really nicealxdr is just really nicealxdr is just really nice
По умолчанию dsPIC33EP512GP806 CAN

Всем привет.
Закончилась память у dsPIC33EP256MU806 перешел на dsPIC33EP512GP806. Все работает, но оказалось что нет приема по CAN. При этом передача идет нормально.
Оказалось, что некорректно происходит присвоение значений из приемного буфера CAN (туда DMA складывает принятые данные):
Код:
             if(ide == 0) {
                            id = (unsigned long)ecan1msgBuf[fnrb][0];
                            id = id & 0x1FFC;
                            id = id >> 2;		
                        }
Сам прием идет абсолютно корректно. Истинное значение буфера ecan1msgBuf[fnrb][0] равно 0x02A8, но переменной id присваивается 0x6E60 но может появиться и другое значение. Что с этим делать, как починить?
Компилятор C30 v3.31
Пробовал создавать просто двумерный массив, из него присваивается корректно.
alxdr вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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


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


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot