[an error occurred while processing this directive]
Вроде, нашел причину.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено asd 26 сентября 2005 г. 13:50
В ответ на: Кстати как проблема с CAN? отправлено <font color=gray>Alex280</font> 23 сентября 2005 г. 15:35

Я свой код (который запостил в первом сообщении) содрал с кейловской демонстрашки Application Note 165 (http://www.keil.com/appnotes/docs/apnt_165.asp) и переделал под свои нужды. В коде при передаче сообщения есть проверка занятости:

BYTE CAN_transmit(CAN_msg_t *msg){
//Передача сообщения из буфера CAN_msg
BYTE i, save_canpage = CANPAGE;

// select CAN message object
CANPAGE = CanChannel(0);

// CAN channel used before?
/******************************************
Вот здесь (я ее немного переделал)
*******************************************/
if ((CANCONCH & CanCONCH)){
int n = 0x7FFF;
while (!(CANSTCH & CanTXOK))
if (!--n){
CANPAGE = save_canpage;
// previous message not yet send!
return 0;
}
}
....
}

Похоже, эта проверка мне все и портила. Убрал ее и все заработало. Непонятно почему сообщение отсылается, но этот бит не выставляется.

OFF: Неудобно на этом форуме сообщения отыскивать - все, как-то, в одной куче...

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru