#ifndef CORE_INCLUDE_IVEc_MCAL_MCAN_H_ #define CORE_INCLUDE_IVEc_MCAL_MCAN_H_ #include "..\utils\utils.h" #include "ti_msp_dl_config.h" /* Enum for CAN ID Types */ typedef enum { IVEC_MCAL_CAN_ID_STD = 0x00, /* Standard ID */ IVEC_MCAL_CAN_ID_EXT = 0x01, /* Extended ID */ IVEC_MCAL_CAN_ID_ERROR = 0x02 /* Error ID */ } xMCAL_CanIdType_e; /* Function Prototypes for MCAN MCAL Layer */ /* Initialize the MCAN module */ IVEC_McalStatus_e vMCAL_MCAN_Init(MCAN_Regs* pMCAN, IVEC_CanBaud_e eBaudRate); /* Deinitialize the MCAN module */ IVEC_McalStatus_e vMCAL_MCAN_DeInit(MCAN_Regs* const pMCAN); /* Transmit data via MCAN */ IVEC_McalStatus_e vMCAL_MCAN_Tx(MCAN_Regs* const pMCAN, uint32_t u32Id, uint16_t* pu16TxData, uint32_t u32BufNum, uint32_t u32Bytes); /* Transmit data via MCAN in blocking mode */ IVEC_McalStatus_e vMCAL_MCAN_TxBlocking(MCAN_Regs* const pMCAN, uint32_t u32Id, uint16_t* pu16TxData, uint32_t u32BufNum, int iBytes); /* Receive data via MCAN */ IVEC_McalStatus_e vMCAL_MCAN_Rx(MCAN_Regs* const pMCAN, uint32_t* pu32Id, uint8_t* pu8RxData, int iDLC); /* Get the error status of the MCAN module */ IVEC_McalStatus_e vMCAL_MCAN_GetErrorStatus(char* pcErrorStatus); /* Get interrupt status of MCAN Interrupt Line 1 */ IVEC_McalStatus_e vMCAL_MCAN_GetInterruptLine1Status(uint32_t* pu32InterruptStatus); /* Reset the MCAN module */ IVEC_McalStatus_e vMCAL_MCAN_Reset(MCAN_Regs* const pMCAN, IVEC_CanBaud_e eBaudRate); #endif /* CORE_INCLUDE_IVEc_MCAL_MCAN_H_ */