#include "CAN.h" #include namespace canSpace { void CAN::transmitMsg(Uint16 boxNumber, const MBOX& message){ Uint32 mboxControl(0); mboxControl = 1ul << boxNumber; volatile MBOX* p_MailBox(NULL); p_MailBox = &(p_CanMBoxes_->MBOX0) + boxNumber; p_MailBox->MDH.all = 0x0; p_MailBox->MDL.all = 0x0; p_MailBox->MSGCTRL.bit.DLC = message.MSGCTRL.bit.DLC; p_MailBox->MDH.all = message.MDH.all; p_MailBox->MDL.all = message.MDL.all; CanShadow_.CANTRS.all = 0; CanShadow_.CANTRS.all |= mboxControl; // Set TRS for mailbox under test p_CanRegs_->CANTRS.all = CanShadow_.CANTRS.all; do { CanShadow_.CANTA.all = p_CanRegs_->CANTA.all; } while((CanShadow_.CANTA.all & mboxControl) == 0 );// Wait for TA1 bit to be set CanShadow_.CANTA.all = 0; CanShadow_.CANTA.all |= mboxControl; // Clear TA1 p_CanRegs_->CANTA.all = CanShadow_.CANTA.all; } void CAN::receiveMsg(Uint16 boxNumber){ Uint32 mboxControl(0); mboxControl = 1ul << boxNumber; volatile MBOX* p_MailBox(NULL); p_MailBox = &(p_CanMBoxes_->MBOX0) + boxNumber; volatile MBOX message; } } // canSpace