Сконнектил два процессора на SAM7X по CAN: все работает. Теперь начал реализовывать механизм прерывания передачи - не получается - в чем траблы:
if (10 == cnt_CAN) { AT91F_CAN_CfgMessageModeReg(AT91C_BASE_CAN_MB0,AT91C_CAN_MOT_TX); // Ask Transmission on Mailbox 0 AT91F_CAN_InitTransferRequest(AT91C_BASE_CAN,AT91C_CAN_MB0); // Enable Transmission Mailbox 0 interrupt AT91F_CAN_EnableIt(AT91C_BASE_CAN,AT91C_CAN_MB0); }else if (20 <= cnt_CAN) { cnt_CAN = 0; if (~(AT91F_CAN_GetMessageStatus(AT91C_BASE_CAN_MB0) & AT91C_CAN_MRDY)) { AT91F_CAN_CfgMessageCtrlReg(AT91C_BASE_CAN_MB0,AT91C_CAN_MACR); AT91F_CAN_InitAbortRequest(AT91C_BASE_CAN,AT91C_CAN_MB0); AT91F_CAN_CfgMessageModeReg(AT91C_BASE_CAN_MB0,AT91C_CAN_MOT_DIS); } }
|