⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ecan.h

📁 Mplab C30编译器
💻 H
📖 第 1 页 / 共 3 页
字号:
#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 + -