'''=========== Can_bus_setup_18f4580.Inc ================================================== '' ;INITIALIZATION Dim node_ident As Byte node_ident=7 TRISB = %00001000 ;CONFIGURE THE CAN DATA DIRECTION REGISTER 'ecancon TRISB= %00101010 ;CONFIGURING THE CAN BAUD RATE CANCON = %10000000 ;CAN MODULE SET TO CONFIGURATION MODE BRGCON1 = %00000011 ;CONFIGURE BAUD RATE = 250 KBITS/SEC BRGCON2 = %10100001 BRGCON3 = %00000001 ;SET UP CAN RECEIVE BUFFER 0 CIOCON = %00100000 ;CAN TX PIN WILL DRIVE Vdd WHEN RECESSIVE ;SETTING REGISTERS FOR TRANSMISSION ' MDSEL0 = 0''ECANCON.6 ' Mode Select bits ' MDSEL1 =0'''ecANCON.7 ' Mode Select bits TXB0SIDH = %00000000 TXB0SIDL = %00001000 TXB0EIDH = %00000000 'TXB0EIDL = %00000001 ; ident=1 'TXB0EIDL = %00000111 ; ident=7 TXB0EIDL =node_ident''TXB0EIDL = CANCON =%00000000 ;SET TO NORMAL MODE ' CANCON =%10000000 ; loopback ;SET UP INTERUUPTS 'INTCON=%11000000 ;ENABLES GLOBAL INTERRUPTS 'PIE3=%00000100 ;ENABLES TXB0 TRANSMIT INTERRUPT Dim data_0_Rx As Byte 'Rx/Tx user vars Dim data_1_RX As Byte Dim data_2_Rx As Byte Dim data_3_Rx As Byte Dim data_4_Rx As Byte Dim data_5_Rx As Byte Dim data_6_Rx As Byte 'rx Dim data_7_Rx As Byte Dim data_0_Tx As Byte 'Tx/Tx user vars Dim data_1_TX As Byte Dim data_2_Tx As Byte Dim data_3_Tx As Byte Dim data_4_Tx As Byte Dim data_5_Tx As Byte Dim data_6_Tx As Byte 'Tx Dim data_7_Tx As Byte '================================================================= '=====================Rx=============================== ;INITIALIZATION ''''''''''''''''TRISB = %00001000 ;CONFIGURE THE CAN DATA DIRECTION REGISTER TRISA =0 ;CONFIGURING THE CAN BAUD RATE CANCON = %10000000 ;CAN MODULE SET TO CONFIGURATION MODE BRGCON1 = %00000011 ;CONFIGURE BAUD RATE = 250 KBITS/SEC BRGCON2 = %10100001 BRGCON3 = %00000001 ;SET UP CAN RECEIVE BUFFER 0 CIOCON = %00100000 ;CAN TX PIN WILL DRIVE Vdd WHEN RECESSIVE RXB0CON= %00000000 ;SET MASK RXM0SIDH = %00000000 ;IGNORE SIDH [accemp all]? RXM0SIDL = %00000000 ;IGNORE SIDL RXM0EIDH = %00000000 ;IGNORE EIDH RXM0EIDL = %11111111 ;COMPARE EACH BIT IN EIDL FOR ACCEPTANCE ;SET FILTER RXF0SIDH = %00000000 ;RXF0SIDH = 0 RXF0SIDL = %00001000 ;EXIDE = 1 ==>EXTENDED ID, RXF0SIDL = 0 RXF0EIDH = %00000000 ;RXF0EIDL = 0 'RXF0EIDL = %00000001 ;RSF0EIDL = 1 RXF0EIDL= node_ident ; ident CANCON = %00000000 ;CAN MODULE SET TO NORMAL MODE 'CANCON = %01000000 ;CAN MODULE SET TO loop back MODE ;SET UP INTERUUPT SERVICE ROUTINE INTCON=%11000000 ;ENABLES GLOBAL INTERRUPTS PIE3=%00000101 ;ENABLES BUFFER0 AND TRANSMIT AND RECEIVE INTERRUPT