|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
#include "CAN.h"
|
|
|
|
|
#include "DSP2833x_Device.h"
|
|
|
|
|
#include "DSP2833x_ECan.h"
|
|
|
|
|
|
|
|
|
|
namespace canSpace {
|
|
|
|
|
|
|
|
|
@ -25,13 +26,13 @@ void CAN::transmitMsg(Uint16 boxNumber, const CANMessage& message){
|
|
|
|
|
p_CanRegs_->CANTRS.all = CanShadow_.CANTRS.all;
|
|
|
|
|
|
|
|
|
|
// Wait for TA bit to be set
|
|
|
|
|
do { CanShadow_.CANTA.all = p_CanRegs_->CANTA.all; }
|
|
|
|
|
while((CanShadow_.CANTA.all & mboxControl) == 0 );
|
|
|
|
|
// do { CanShadow_.CANTA.all = p_CanRegs_->CANTA.all; }
|
|
|
|
|
// while((CanShadow_.CANTA.all & mboxControl) == 0 );
|
|
|
|
|
|
|
|
|
|
// Clear TA (transmit acknowledge bit)
|
|
|
|
|
CanShadow_.CANTA.all = 0;
|
|
|
|
|
CanShadow_.CANTA.all |= mboxControl;
|
|
|
|
|
p_CanRegs_->CANTA.all = CanShadow_.CANTA.all;
|
|
|
|
|
// // Clear TA (transmit acknowledge bit)
|
|
|
|
|
// CanShadow_.CANTA.all = 0;
|
|
|
|
|
// CanShadow_.CANTA.all |= mboxControl;
|
|
|
|
|
// p_CanRegs_->CANTA.all = CanShadow_.CANTA.all;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -250,4 +251,35 @@ bool CAN::isNewMessage(Uint16 boxNumber){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CAN::resetTimeStampCounter(){
|
|
|
|
|
EALLOW;
|
|
|
|
|
ECanbRegs.CANTSC = 0;
|
|
|
|
|
EDIS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CAN::setTimeOutValue(Uint16 boxNumber, Uint32 canBitsNumber){
|
|
|
|
|
if (boxNumber > 31) { return; }
|
|
|
|
|
|
|
|
|
|
volatile Uint32* p_MailBox(0);
|
|
|
|
|
p_MailBox = &(p_CanMotoRegs_->MOTO0) + boxNumber;
|
|
|
|
|
|
|
|
|
|
*p_MailBox = canBitsNumber;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool CAN::isTimeOut(Uint16 boxNumber){
|
|
|
|
|
bool mBOXTimeOut = false;
|
|
|
|
|
mBOXTimeOut = p_CanRegs_->CANTOS.all & (1ul << boxNumber);
|
|
|
|
|
return mBOXTimeOut;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CAN::clearTimeOutFlag(Uint16 boxNumber){
|
|
|
|
|
Uint32 clearFlag = 0;
|
|
|
|
|
clearFlag = 1ul << boxNumber;
|
|
|
|
|
p_CanRegs_->CANTOS.all = clearFlag;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} // canSpace
|
|
|
|
|