📄 ecan.h
字号:
#define CAN_FIFO_AREA_TRB1 0xFFE1 /* FIFO area starts with buffer bits */
#define CAN_FIFO_AREA_TRB0 0xFFE0 /* FIFO area starts with buffer bits */
/*ECAN CiINTE : ECAN INTERRUPT ENABLE REGISTER */
#define CAN_INVALID_MESSAGE_INT_EN 0xFFFF /*Invalid message received interrupt enable bit*/
#define CAN_WAKEUP_INT_EN 0xFFFF /* Bus wake up activity interrupt flag bit*/
#define CAN_ERR_INT_EN 0xFFFF /* Error interrupt enable bit*/
#define CAN_FIFO_INT_EN 0xFFFF /* FIFO almost full interrupt enable bit*/
#define CAN_RXBUF_OVERFLOW_INT_EN 0xFFFF /* RX Buffer overflow interrupt enable bit */
#define CAN_RXBUF_INT_EN 0xFFFF /* RX buffer interrupt enable bit*/
#define CAN_TXBUF_INT_EN 0xFFFF /* TX buffer interrupt enable bit */
#define CAN_INVALID_MESSAGE_INT_DIS 0xFF7F /*Invalid message received interrupt enable bit*/
#define CAN_WAKEUP_INT_DIS 0xFFBF /* Bus wake up activity interrupt flag bit*/
#define CAN_ERR_INT_DIS 0xFFCF /* Error interrupt enable bit*/
#define CAN_FIFO_INT_DIS 0xFFE7 /* FIFO almost full interrupt enable bit*/
#define CAN_RXBUF_OVERFLOW_INT_DIS 0xFFEB /* RX Buffer overflow interrupt enable bit */
#define CAN_RXBUF_INT_DIS 0xFFED /* RX buffer interrupt enable bit*/
#define CAN_TXBUF_INT_DIS 0xFFEE /* TX buffer interrupt enable bit */
/*ECAN CiCFG1 : ECAN BAUD RATE CONFIGURATION REGISTER1 */
#define CAN_SYNC_JUMP_WIDTH1 0x003F
#define CAN_SYNC_JUMP_WIDTH2 0x007F
#define CAN_SYNC_JUMP_WIDTH3 0x00BF
#define CAN_SYNC_JUMP_WIDTH4 0x00FF
#define CAN_BAUD_PRE_SCALE(x) (((x-1) & 0x3f) | 0xC0)
/*ECAN CiCFG2 : ECAN BAUD RATE CONFIGURATION REGISTER2 */
#define CAN_WAKEUP_BY_FILTER_EN 0x47FF
#define CAN_WAKEUP_BY_FILTER_DIS 0x07FF
#define CAN_PHASE_SEG2_TQ(x) ((((x-1) & 0x7) << 8) | 0x40FF)
#define CAN_PHASE_SEG1_TQ(x) ((((x-1) & 0x7) << 3) | 0x47C7)
#define CAN_PROPAGATIONTIME_SEG_TQ(x) (((x-1) & 0x7) | 0x47F8)
#define CAN_SEG2_FREE_PROG 0x47FF
#define CAN_SEG2_TIME_LIMIT_SET 0x477F
#define CAN_SAMPLE3TIMES 0x47FF
#define CAN_SAMPLE1TIME 0x47BF
/* CiFMSKSEL1 : ECAN FILTER 7-0 MASK SELECTION REGISTER */
#define CAN_MASK_FILTER7_NO_MASK 0xFFFF /* Mask Source for filter 7 bit : No mask*/
#define CAN_MASK_FILTER7_MASK2 0xBFFF /* Mask Source for filter 7 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER7_MASK1 0x7FFF /* Mask Source for filter 7 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER7_MASK0 0x3FFF /* Mask Source for filter 7 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER6_NO_MASK 0xFFFF /* Mask Source for filter 6 bit : No mask*/
#define CAN_MASK_FILTER6_MASK2 0xEFFF /* Mask Source for filter 6 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER6_MASK1 0xDFFF /* Mask Source for filter 6 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER6_MASK0 0xCFFF /* Mask Source for filter 6 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER5_NO_MASK 0xFFFF /* Mask Source for filter 5 bit : No mask*/
#define CAN_MASK_FILTER5_MASK2 0xFBFF /* Mask Source for filter 5 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER5_MASK1 0xF7FF /* Mask Source for filter 5 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER5_MASK0 0xF3FF /* Mask Source for filter 5 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER4_NO_MASK 0xFFFF /* Mask Source for filter 4 bit : No mask*/
#define CAN_MASK_FILTER4_MASK2 0xFEFF /* Mask Source for filter 4 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER4_MASK1 0xFDFF /* Mask Source for filter 4 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER4_MASK0 0xFCFF /* Mask Source for filter 4 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER3_NO_MASK 0xFFFF /* Mask Source for filter 3 bit : No mask*/
#define CAN_MASK_FILTER3_MASK2 0xFFBF /* Mask Source for filter 3 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER3_MASK1 0xFF7F /* Mask Source for filter 3 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER3_MASK0 0xFF3F /* Mask Source for filter 3 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER2_NO_MASK 0xFFFF /* Mask Source for filter 2 bit : No mask*/
#define CAN_MASK_FILTER2_MASK2 0xFFEF /* Mask Source for filter 2 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER2_MASK1 0xFFDF /* Mask Source for filter 2 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER2_MASK0 0xFFCF /* Mask Source for filter 2 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER1_NO_MASK 0xFFFF /* Mask Source for filter 1 bit : No mask*/
#define CAN_MASK_FILTER1_MASK2 0xFFFB /* Mask Source for filter 1 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER1_MASK1 0xFFF7 /* Mask Source for filter 1 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER1_MASK0 0xFFF3 /* Mask Source for filter 1 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER0_NO_MASK 0xFFFF /* Mask Source for filter 0 bit : No mask*/
#define CAN_MASK_FILTER0_MASK2 0xFFFE /* Mask Source for filter 0 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER0_MASK1 0xFFFD /* Mask Source for filter 0 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER0_MASK0 0xFFFC /* Mask Source for filter 0 bit :
Acceptance Mask 0 registers contain mask*/
/* CiFMSKSEL2 : ECAN FILTER 15-8 MASK SELECTION REGISTER */
#define CAN_MASK_FILTER15_NO_MASK 0xFFFF /* Mask Source for filter 15 bit : No mask*/
#define CAN_MASK_FILTER15_MASK2 0xBFFF /* Mask Source for filter 15 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER15_MASK1 0x7FFF /* Mask Source for filter 15 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER15_MASK0 0x3FFF /* Mask Source for filter 15 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER14_NO_MASK 0xFFFF /* Mask Source for filter 14 bit : No mask*/
#define CAN_MASK_FILTER14_MASK2 0xEFFF /* Mask Source for filter 14 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER14_MASK1 0xDFFF /* Mask Source for filter 14 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER14_MASK0 0xCFFF /* Mask Source for filter 14 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER13_NO_MASK 0xFFFF /* Mask Source for filter 13 bit : No mask*/
#define CAN_MASK_FILTER13_MASK2 0xFBFF /* Mask Source for filter 13 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER13_MASK1 0xF7FF /* Mask Source for filter 13 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER13_MASK0 0xF3FF /* Mask Source for filter 13 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER12_NO_MASK 0xFFFF /* Mask Source for filter 12 bit : No mask*/
#define CAN_MASK_FILTER12_MASK2 0xFEFF /* Mask Source for filter 12 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER12_MASK1 0xFDFF /* Mask Source for filter 12 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER12_MASK0 0xFCFF /* Mask Source for filter 12 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER11_NO_MASK 0xFFFF /* Mask Source for filter 11 bit : No mask*/
#define CAN_MASK_FILTER11_MASK2 0xFFBF /* Mask Source for filter 11 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER11_MASK1 0xFF7F /* Mask Source for filter 11 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER11_MASK0 0xFF3F /* Mask Source for filter 11 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER10_NO_MASK 0xFFFF /* Mask Source for filter 10 bit : No mask*/
#define CAN_MASK_FILTER10_MASK2 0xFFEF /* Mask Source for filter 10 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER10_MASK1 0xFFDF /* Mask Source for filter 10 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER10_MASK0 0xFFCF /* Mask Source for filter 10 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER9_NO_MASK 0xFFFF /* Mask Source for filter 9 bit : No mask*/
#define CAN_MASK_FILTER9_MASK2 0xFFFB /* Mask Source for filter 9 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER9_MASK1 0xFFF7 /* Mask Source for filter 9 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER9_MASK0 0xFFF3 /* Mask Source for filter 9 bit :
Acceptance Mask 0 registers contain mask*/
#define CAN_MASK_FILTER8_NO_MASK 0xFFFF /* Mask Source for filter 8 bit : No mask*/
#define CAN_MASK_FILTER8_MASK2 0xFFFE /* Mask Source for filter 8 bit :
Acceptance Mask 2 registers contain mask*/
#define CAN_MASK_FILTER8_MASK1 0xFFFD /* Mask Source for filter 8 bit :
Acceptance Mask 1 registers contain mask*/
#define CAN_MASK_FILTER8_MASK0 0xFFFC /* Mask Source for filter 8 bit :
Acceptance Mask 0 registers contain mask*/
/*********************Function definitions*******************/
/* Macros to Enable/Disable interrupts and set Interrupt priority of CAN 1 module*/
#define EnableIntCAN1 IEC2bits.C1IE = 1
#define DisableIntCAN1 IEC2bits.C1IE = 0
#define SetPriorityIntCAN1(priority) IPC8bits.C1IP = (priority)
void ConfigIntCAN1(unsigned int config1, unsigned int config2) __attribute__ ((section (".libperi")));
void CAN1SetTXRXMode(unsigned int buffno, unsigned int config) __attribute__ ((section (".libperi")));
void CAN1SetOperationModeNoWait(unsigned int config1,unsigned int config2) __attribute__ ((section (".libperi")));
void CAN1AbortAll(void) __attribute__ ((section (".libperi")));
void CAN1SetMask(unsigned int mask_no, unsigned int sid, unsigned long eid) __attribute__ ((section (".libperi")));
void CAN1SetFilter(unsigned int filter_no, unsigned int sid, unsigned long eid) __attribute__ ((section (".libperi")));
void CAN1SendMessage(unsigned char *data, unsigned int datalen, unsigned long txIdentifier,\
unsigned char ide, unsigned char remoteTransmit, unsigned int *dmaBaseAddress, unsigned char MsgFlag) __attribute__ ((section (".libperi")));
void CAN1ReceiveMessage (unsigned char * data, unsigned char datalen,
unsigned char *DMAptr) __attribute__ ((section (".libperi")));
char CAN1IsTXReady(char buffno) __attribute__ ((section (".libperi")));
char CAN1IsTXPassive(void) __attribute__ ((section (".libperi")));
char CAN1IsRXReady(char buffno) __attribute__ ((section (".libperi")));
char CAN1IsRXPassive(void) __attribute__ ((section (".libperi")));
char CAN1IsBusOff(void) __attribute__ ((section (".libperi")));
void CAN1Initialize(unsigned int config1, unsigned int config2) __attribute__ ((section (".libperi")));
unsigned char CAN1GetTXErrorCount(void) __attribute__ ((section (".libperi")));
unsigned char CAN1GetRXErrorCount(void) __attribute__ ((section (".libperi")));
void CAN1SetOperationMode(unsigned int config1,unsigned int config2) __attribute__ ((section (".libperi")));
void CAN1ClearRXFUL1(void) __attribute__ ((section (".libperi")));
void CAN1ClearRXFUL2(void) __attribute__ ((section (".libperi")));
void CAN1ClearRXOVF1(void) __attribute__ ((section (".libperi")));
void CAN1ClearRXOVF2(void) __attribute__ ((section (".libperi")));
void CAN1EnableFilter(unsigned int filter_no) __attribute__ ((section (".libperi")));
void CAN1FIFOCon(unsigned int fifo_val) __attribute__ ((section (".libperi")));
void CAN1SetBUFPNT1(unsigned int pointer_value) __attribute__ ((section (".libperi")));
void CAN1SetBUFPNT2(unsigned int pointer_value) __attribute__ ((section (".libperi")));
void CAN1SetBUFPNT3(unsigned int pointer_value) __attribute__ ((section (".libperi")));
void CAN1SetBUFPNT4(unsigned int pointer_value) __attribute__ ((section (".libperi")));
void CAN1SetMaskSource(unsigned int mask_val1, unsigned int mask_val2) __attribute__ ((section (".libperi")));
#endif
#ifdef _C2TXIF
/* Macros to Enable/Disable interrupts and set Interrupt priority of CAN 2 module*/
#define EnableIntCAN2 IEC3bits.C2IE = 1
#define DisableIntCAN2 IEC3bits.C2IE = 0
#define SetPriorityIntCAN2(priority) IPC14bits.C2IP = (priority)
void ConfigIntCAN2(unsigned int config1, unsigned int config2) __attribute__ ((section (".libperi")));
void CAN2SetTXRXMode(unsigned int buffno, unsigned int config) __attribute__ ((section (".libperi")));
void CAN2SetOperationModeNoWait(unsigned int config1,unsigned int config2) __attribute__ ((section (".libperi")));
void CAN2AbortAll(void) __attribute__ ((section (".libperi")));
void CAN2SetMask(unsigned int mask_no, unsigned int sid, unsigned long eid) __attribute__ ((section (".libperi")));
void CAN2SetFilter(unsigned int filter_no, unsigned int sid, unsigned long eid) __attribute__ ((section (".libperi")));
void CAN2SendMessage(unsigned char *data, unsigned int datalen, unsigned long txIdentifier,\
unsigned char ide, unsigned char remoteTransmit, unsigned int *dmaBaseAddress, unsigned char MsgFlag) __attribute__ ((section (".libperi")));
void CAN2ReceiveMessage (unsigned char * data, unsigned char datalen,
unsigned char *DMAptr) __attribute__ ((section (".libperi")));
char CAN2IsTXReady(char buffno) __attribute__ ((section (".libperi")));
char CAN2IsTXPassive(void) __attribute__ ((section (".libperi")));
char CAN2IsRXReady(char buffno) __attribute__ ((section (".libperi")));
char CAN2IsRXPassive(void) __attribute__ ((section (".libperi")));
char CAN2IsBusOff(void) __attribute__ ((section (".libperi")));
void CAN2Initialize(unsigned int config1, unsigned int config2) __attribute__ ((section (".libperi")));
unsigned char CAN2GetTXErrorCount(void) __attribute__ ((section (".libperi")));
unsigned char CAN2GetRXErrorCount(void) __attribute__ ((section (".libperi")));
void CAN2SetOperationMode(unsigned int config1,unsigned int config2) __attribute__ ((section (".libperi")));
void CAN2ClearRXFUL1(void) __attribute__ ((section (".libperi")));
void CAN2ClearRXFUL2(void) __attribute__ ((section (".libperi")));
void CAN2ClearRXOVF1(void) __attribute__ ((section (".libperi")));
void CAN2ClearRXOVF2(void) __attribute__ ((section (".libperi")));
void CAN2EnableFilter(unsigned int filter_no) __attribute__ ((section (".libperi")));
void CAN2FIFOCon(unsigned int fifo_val) __attribute__ ((section (".libperi")));
void CAN2SetBUFPNT1(unsigned int pointer_value) __attribute__ ((section (".libperi")));
void CAN2SetBUFPNT2(unsigned int pointer_value) __attribute__ ((section (".libperi")));
void CAN2SetBUFPNT3(unsigned int pointer_value) __attribute__ ((section (".libperi")));
void CAN2SetBUFPNT4(unsigned int pointer_value) __attribute__ ((section (".libperi")));
void CAN2SetMaskSource(unsigned int mask_val1, unsigned int mask_val2) __attribute__ ((section (".libperi")));
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -