Freescale Semiconductor Microcontrollers User Manual

Page 284

Advertising
background image

HC08 Full Chip Simulation

Configuration Procedure

284

Microcontrollers Debugger Manual

* after a RESET. *
****************************************************************
MAIN_INIT:
rsp
ldhx #PacketData ; initialize buffer pointer to start of
; buffer
sthx buffptr
lda #01
sta CONFIG1 ; disable COP watchdog
lda #01
sta CONFIG2 ; MSCAND=0 (enable MSCAN module)
jsr Init_CAN ; Initialize CAN peripheral
cli ; Allow interrupts to happen

main_loop:
nop ; do nothing in main loop
bra main_loop

**************************************************************
* CAN_ISR - CAN Interrupt Service Routine. *
* Interrupts here if CAN packet is received that *
* has the address of this CAN module. *
**************************************************************
CAN_ISR:
lda CRDLR ; get length of data in message
cbeqa #0,DATADONE ; if no data in message then done
sta datacount
ldhx #CRDSR0 ; initialize data pointer to first data
; segment
sthx dataptr
STOREDATA:
ldhx dataptr ; get data pointer to data in received
; message
lda 0,x ; load data from data segment
aix #1 ; index pointer to next segment
sthx dataptr ; save data pointer
ldhx buffptr ; get pointer to local circular buffer
sta 0,x ; store data in next location
aix #1 ; index pointer to next location
cphx #PacketDataEnd ; if end of circular buffer
bne CHECKDATAEND ; then reset pointer to start of
; circular buffer
ldhx #PacketData
CHECKDATAEND:
sthx buffptr
dbnz datacount,STOREDATA ;if no more data in message then done
DATADONE:
lda #01

Advertising