git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1379 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
aa9f517f87
commit
b33d1f0a4e
|
@ -292,13 +292,10 @@ void can_lld_transmit(CANDriver *canp, const CANTxFrame *ctfp) {
|
||||||
|
|
||||||
/* Preparing the message.*/
|
/* Preparing the message.*/
|
||||||
if (ctfp->cf_IDE)
|
if (ctfp->cf_IDE)
|
||||||
tir = ((uint32_t)ctfp->cf_EID << 3) |
|
tir = ((uint32_t)ctfp->cf_EID << 3) | ((uint32_t)ctfp->cf_RTR << 1) |
|
||||||
((uint32_t)ctfp->cf_IDE << 2) |
|
CAN_TI0R_IDE;
|
||||||
((uint32_t)ctfp->cf_RTR << 1);
|
|
||||||
else
|
else
|
||||||
tir = ((uint32_t)ctfp->cf_SID << 24) |
|
tir = ((uint32_t)ctfp->cf_SID << 21) | ((uint32_t)ctfp->cf_RTR << 1);
|
||||||
((uint32_t)ctfp->cf_IDE << 2) |
|
|
||||||
((uint32_t)ctfp->cf_RTR << 1);
|
|
||||||
tmbp->TDTR = ctfp->cf_DLC;
|
tmbp->TDTR = ctfp->cf_DLC;
|
||||||
tmbp->TDLR = ctfp->cf_data32[0];
|
tmbp->TDLR = ctfp->cf_data32[0];
|
||||||
tmbp->TDHR = ctfp->cf_data32[1];
|
tmbp->TDHR = ctfp->cf_data32[1];
|
||||||
|
@ -329,22 +326,22 @@ void can_lld_receive(CANDriver *canp, CANRxFrame *crfp) {
|
||||||
uint32_t r;
|
uint32_t r;
|
||||||
|
|
||||||
/* Fetches the message.*/
|
/* Fetches the message.*/
|
||||||
|
r = canp->cd_can->sFIFOMailBox[0].RIR;
|
||||||
|
crfp->cf_RTR = (r & CAN_RI0R_RTR) >> 1;
|
||||||
|
crfp->cf_IDE = (r & CAN_RI0R_IDE) >> 2;
|
||||||
|
if (crfp->cf_IDE)
|
||||||
|
crfp->cf_EID = r >> 3;
|
||||||
|
else
|
||||||
|
crfp->cf_SID = r >> 21;
|
||||||
r = canp->cd_can->sFIFOMailBox[0].RDTR;
|
r = canp->cd_can->sFIFOMailBox[0].RDTR;
|
||||||
crfp->cf_DLC = r & CAN_RDT0R_DLC;
|
crfp->cf_DLC = r & CAN_RDT0R_DLC;
|
||||||
crfp->cf_FMI = (uint8_t)(r >> 8);
|
crfp->cf_FMI = (uint8_t)(r >> 8);
|
||||||
crfp->cf_TIME = (uint16_t)(r >> 16);
|
crfp->cf_TIME = (uint16_t)(r >> 16);
|
||||||
r = canp->cd_can->sFIFOMailBox[0].RIR;
|
|
||||||
crfp->cf_RTR = r & CAN_RI0R_RTR;
|
|
||||||
crfp->cf_IDE = r & CAN_RI0R_IDE;
|
|
||||||
if (crfp->cf_IDE)
|
|
||||||
crfp->cf_EID = r >> 3;
|
|
||||||
else
|
|
||||||
crfp->cf_SID = r >> 24;
|
|
||||||
crfp->cf_data32[0] = canp->cd_can->sFIFOMailBox[0].RDLR;
|
crfp->cf_data32[0] = canp->cd_can->sFIFOMailBox[0].RDLR;
|
||||||
crfp->cf_data32[1] = canp->cd_can->sFIFOMailBox[0].RDHR;
|
crfp->cf_data32[1] = canp->cd_can->sFIFOMailBox[0].RDHR;
|
||||||
|
|
||||||
/* Releases the mailbox.*/
|
/* Releases the mailbox.*/
|
||||||
canp->cd_can->RF0R |= CAN_RF0R_RFOM0;
|
canp->cd_can->RF0R = CAN_RF0R_RFOM0;
|
||||||
|
|
||||||
/* If the queue is empty re-enables the interrupt in order to generate
|
/* If the queue is empty re-enables the interrupt in order to generate
|
||||||
events again.*/
|
events again.*/
|
||||||
|
|
Loading…
Reference in New Issue