|
LPC2294, Про регистры |
|
|
|
Feb 19 2007, 05:57
|
Группа: Новичок
Сообщений: 14
Регистрация: 11-01-07
Пользователь №: 24 336

|
Цитата(zltigo @ Feb 17 2007, 12:52)  Ничего Вы не поняли  1. Компилятор это делает за Вас. 2. Память и периферия с точки зрения байтовых и битовых обращений есть две большие разницы и сваливать их в кучу  Давайте разберёмся вместе  . Я хотел сказать, что модуль CAN в dsPICах 16-разрядный, но тем не менее там есть возможность обратиться к регистрам модуля CAN как к полуслову, так и побитно (это периферия, а не память). А у LPC надо делать по-другому. А если я чего не понял, ну объясните, пожалуйста, чего я недопонимаю?
Сообщение отредактировал Kaiser - Feb 19 2007, 05:59
|
|
|
|
|
Feb 19 2007, 08:31
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(Kaiser @ Feb 17 2007, 08:07)  Если вы в вопросе подразумевали - есть ли на шине другой приёмник-устройство на 125 кбит/с - то да, есть другое устройство и даже их два, и я их точно не забываю переконфигурировать на соответствущую скорость. Я бы взял скоп и смотрел, для начала без приемников на шине. Посчитал бы реальную битовую скорость. И потом не понятно, что вы подразумеваете под "виснет". Цитата(Kaiser @ Feb 19 2007, 07:57)  Давайте разберёмся вместе  . Я хотел сказать, что модуль CAN в dsPICах 16-разрядный, но тем не менее там есть возможность обратиться к регистрам модуля CAN как к полуслову, так и побитно (это периферия, а не память). А у LPC надо делать по-другому. А если я чего не понял, ну объясните, пожалуйста, чего я недопонимаю?  Ну сделано в dsPIC так, а в LPC так (почему это выгоднее, уже объясняли). Примите как данность, реализуйте драйвер для этото CAN контроллера с нужным API и забудте, как оно там обращается к этим регистрам.
--------------------
Пасу котов...
|
|
|
|
|
Feb 19 2007, 10:28
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Kaiser @ Feb 19 2007, 04:57)  А если я чего не понял, ну объясните, пожалуйста, чего я недопонимаю?  Недообъясняете - предыдущее письмо было: Цитата Вот у Микрочипа dsPIC 16 разряный, но с помощью компилятора позволяет обращаться отдельно к полуслову (1 байт) и даже применимо побитное обращение. Всуе поминалаись не относящинся к делу разрядность контролера, компилятор. И вообще пробитное обращение - а что за каким-то хреном в CAN от микрочипа сделаны регистры для установк/сброса и отдельных битов с буфере передачи????
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 19 2007, 18:33
|
Группа: Новичок
Сообщений: 14
Регистрация: 11-01-07
Пользователь №: 24 336

|
Цитата(zltigo @ Feb 19 2007, 12:28)  Всуе поминалаись не относящинся к делу разрядность контролера, компилятор. И вообще пробитное обращение - а что за каким-то хреном в CAN от микрочипа сделаны регистры для установк/сброса и отдельных битов с буфере передачи???? Блин, "ниасилил аффтар твою грамматику":( Цитата(Andy Mozzhevilov @ Feb 19 2007, 10:31)  Я бы взял скоп и смотрел, для начала без приемников на шине. Посчитал бы реальную битовую скорость. И потом не понятно, что вы подразумеваете под "виснет". Под "виснет" я подразумеваю, что LPC вообще после 16 передач одного и того же сообщения никак не реагирует ни на что. Дальше не изменяя текста программы меняю скорость с 125 на 1000 и всё работает как часы без зависонов и глюков. Завтра попробую без приёмников поюзать, а то уже 4 дня на больничном был, под руками LPC не было.
|
|
|
|
|
Feb 20 2007, 07:36
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(Kaiser @ Feb 19 2007, 20:33)  Под "виснет" я подразумеваю, что LPC вообще после 16 передач одного и того же сообщения никак не реагирует ни на что. Посмотрите, в какой-нибудь аборт сваливается, наверное. По LR можно проследить, с какого адреса, ну а дальше ставить там брейкпоинты, и разбираться.
--------------------
Пасу котов...
|
|
|
|
|
Feb 20 2007, 17:50
|
Группа: Новичок
Сообщений: 14
Регистрация: 11-01-07
Пользователь №: 24 336

|
Цитата(Andy Mozzhevilov @ Feb 20 2007, 09:36)  Цитата(Kaiser @ Feb 19 2007, 20:33)  Под "виснет" я подразумеваю, что LPC вообще после 16 передач одного и того же сообщения никак не реагирует ни на что.
Посмотрите, в какой-нибудь аборт сваливается, наверное. По LR можно проследить, с какого адреса, ну а дальше ставить там брейкпоинты, и разбираться. Уффф, всё сегодня наконец-то со всем разобрался - и скорости нормально стали переключаться и с регистрами всё получилось пока лучше некуда. Огромное всем спасибо, пока вопросов нет ;-)
|
|
|
|
|
Feb 21 2007, 06:46
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(Kaiser @ Feb 20 2007, 19:50)  Цитата(Andy Mozzhevilov @ Feb 20 2007, 09:36)  Цитата(Kaiser @ Feb 19 2007, 20:33)  Под "виснет" я подразумеваю, что LPC вообще после 16 передач одного и того же сообщения никак не реагирует ни на что.
Посмотрите, в какой-нибудь аборт сваливается, наверное. По LR можно проследить, с какого адреса, ну а дальше ставить там брейкпоинты, и разбираться. Уффф, всё сегодня наконец-то со всем разобрался - и скорости нормально стали переключаться и с регистрами всё получилось пока лучше некуда. Огромное всем спасибо, пока вопросов нет ;-) Отчет в студию! По крайней мере так принято, даже если он в стиле "сам был дурак".
--------------------
Пасу котов...
|
|
|
|
|
Feb 21 2007, 20:30
|
Группа: Новичок
Сообщений: 14
Регистрация: 11-01-07
Пользователь №: 24 336

|
Отчёт. Насчёт регистров, попробовал как посоветовали - работает! Хотя немного поковырявшись, заделал новый тип - структурка typedef struct { unsigned long TFI; unsigned long ID; unsigned long Data[2]; } CAN_TxObj, *pCAN_TxObj; и с ней изгаляюсь, получилось коротко и ясно.
Насчёт скоростей, во-первых, у меня монитор шины CAN фирмы IXXAT был настроен на скорость 125CIA, но 1 бит состоял из 16 квантов, а в LPC из 10 квантов - осциллографом посмотрел битовая скорость совпадала, но почему то сообщения передавались некорректно, изменил скорость на просто 125 в IXXAT - всё стало нормально. А во-вторых, у второго приёмника на шине CAN битовая скорость немного отличалась на единицы микросекунд (время 1 бита), и уже глючило. Выставил точно битовую скорость на втором приёмнике, и с ним работа наладилась. Пока вот так.......
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|