English
Language : 

PIC18F45K80-I Datasheet, PDF (405/622 Pages) Microchip Technology – 28/40/44/64-Pin, Enhanced Flash Microcontrollers with ECAN and nanoWatt XLP Technology
PIC18F66K80 FAMILY
EXAMPLE 27-4: TRANSMITTING A CAN MESSAGE USING WIN BITS
; Need to transmit Standard Identifier message 123h using TXB0 buffer.
; To successfully transmit, CAN module must be either in Normal or Loopback mode.
; TXB0 buffer is not in access bank. Use WIN bits to map it to RXB0 area.
MOVF CANCON, W
; WIN bits are in lower 4 bits only. Read CANCON
; register to preserve all other bits. If operation
; mode is already known, there is no need to preserve
; other bits.
ANDLW B’11110000’
; Clear WIN bits.
IORLW B’00001000’
; Select Transmit Buffer 0
MOVWF CANCON
; Apply the changes.
; Now TXB0 is mapped in place of RXB0. All future access to RXB0 registers will actually
; yield TXB0 register values.
; Load transmit data into TXB0 buffer.
MOVLW MY_DATA_BYTE1
; Load first data byte into buffer
MOVWF RXB0D0
; Access TXB0D0 via RXB0D0 address.
; Load rest of the data bytes - up to 8 bytes into “TXB0” buffer using RXB0 registers.
...
; Load message identifier
MOVLW 60H
; Load SID2:SID0, EXIDE = 0
MOVWF RXB0SIDL
MOVLW 24H
; Load SID10:SID3
MOVWF RXB0SIDH
; No need to load RXB0EIDL:RXB0EIDH, as we are transmitting Standard Identifier Message only.
; Now that all data bytes are loaded, mark it for transmission.
MOVLW B’00001000’
; Normal priority; Request transmission
MOVWF RXB0CON
; If required, wait for message to get transmitted
BTFSC RXB0CON, TXREQ
; Is it transmitted?
BRA
$-2
; No. Continue to wait...
; Message is transmitted.
; If required, reset the WIN bits to default state.
 2010-2012 Microchip Technology Inc.
DS39977F-page 405