[an error occurred while processing this directive]
|
Я свой код (который запостил в первом сообщении) содрал с кейловской демонстрашки 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: info@telesys.ru