📄 rem28ans.asm
字号:
;==============================================================================
* File name : REM28ANS.asm *
* Description : PROGRAM TO INITIATE AUTO-ANSWER TO A REMOTE FRAME
* REQUEST FROM A 28x
;Last update 12/28/2001
*==============================================================================
.title "REM_ANS" ; Title
.include 240x.h ; Variable and register declaration
.include vector.h
;------------------------------------------------------------------------------
; Constant definitions
;------------------------------------------------------------------------------
DP_PF1 .set 0E0h ; Page 1 of peripheral file (7000h/80h
DP_CAN .set 0E2h ; CAN Register (7100h)
DP_CAN2 .set 0E4h ; CAN RAM (7200h)
;------------------------------------------------------------------------------
; M A C R O - Definitions
;------------------------------------------------------------------------------
KICK_DOG .macro ; Watchdog reset macro
LDP #00E0h
SPLK #05555h, WDKEY
SPLK #0AAAAh, WDKEY
LDP #0h
.endm
;==============================================================================
; M A I N C O D E - starts here
;==============================================================================
.text
START: KICK_DOG
SETC INTM ; Disable interrupts
LDP #DP_PF1
SPLK #0010h,SCSR1 ; Enable clock to CAN module
SPLK 06Fh,WDCR ; Disable Watchdog
LDP #225
SPLK #00C0H,MCRB ; Configure CAN pins
;**************************************************************************
;******************** CAN Initialization***********************************
;**************************************************************************
LDP #DP_CAN
SPLK #1011111111111111b,CANIMR ; Enable all interrupts
;**************************************************************************
;*********** Configure CAN before writing **********
;**************************************************************************
LDP #DP_CAN
SPLK #0000000000000000b,CANMDER
; ||||||||||||||||
; FEDCBA9876543210
; bit 0-5 disable each mailbox
;**************************************************************************
;*********** Write CAN Mailboxes **********
;**************************************************************************
LDP #DP_CAN2
SPLK #0AAAAh,CANMSGID2H
SPLK #0AA02h,CANMSGID2L
SPLK #0AAAAh,CANMSGID3H
SPLK #0AA03h,CANMSGID3L
SPLK #0AAAAh,CANMSGID4H
SPLK #0AA04h,CANMSGID4L
SPLK #0AAAAh,CANMSGID5H
SPLK #0AA05h,CANMSGID5L
SPLK #0000000000001000b,CANMSGCTRL2
SPLK #0000000000001000b,CANMSGCTRL3
SPLK #0000000000001000b,CANMSGCTRL4
SPLK #0000000000001000b,CANMSGCTRL5
; ||||||||||||||||
; FEDCBA9876543210
; bit 0-3 Data length code: 1000 = 8 bytes
; bit 4 0: data frame
SPLK #02020h,CANMBX2A ; Message to be transmitted
SPLK #02121h,CANMBX2B ; to the remote node
SPLK #02222h,CANMBX2C
SPLK #02020h,CANMBX2D
SPLK #03030h,CANMBX3A ; Message to be transmitted
SPLK #03131h,CANMBX3B ; to the remote node
SPLK #03232h,CANMBX3C
SPLK #03333h,CANMBX3D
SPLK #04040h,CANMBX4A ; Message to be transmitted
SPLK #04141h,CANMBX4B ; to the remote node
SPLK #04242h,CANMBX4C
SPLK #04444h,CANMBX4D
SPLK #05050h,CANMBX5A ; Message to be transmitted
SPLK #05151h,CANMBX5B ; to the remote node
SPLK #05252h,CANMBX5C
SPLK #05555h,CANMBX5D
;**************************************************************************
;*********** Set parameters after writing **********
;**************************************************************************
LDP #DP_CAN
SPLK #0000000000111100b,CANMDER
; ||||||||||||||||
; FEDCBA9876543210
;**************************************************************************
;*********** CAN Registers configuration ***********************
;**************************************************************************
SPLK #0001000000000000b,CANMCR
; ||||||||||||||||
; FEDCBA9876543210
; bit 12 Change configuration request
W_CCE BIT CANGSR,#0Bh ; Wait for Change config Enable
BCND W_CCE,NTC
SPLK #0000000000000001b,CANBCR2
; ||||||||||||||||
; FEDCBA9876543210
; bit 0-7 Baud rate prescaler
; bit 8-15 Reserved
SPLK #0000010101010111b,CANBCR1
; ||||||||||||||||
; FEDCBA9876543210
; bit 0-2 TSEG1
; bit 3-6 TSEG2
; bit 7 Sample point setting (1: 3 times, 0: once)
; bit 8-A Synchronization jump width
; bit B Synchronization on falling edge
; bit C-F Reserved
SPLK #0000000000000000b,CANMCR
; ||||||||||||||||
; FEDCBA9876543210
; bit 12 Change configuration request
;
W_NCCE BIT CANGSR,#0Bh ; Wait for Change config disable
BCND W_NCCE,TC
LOOP B LOOP ; Wait for Remote frames..
GISR1:
GISR2:
GISR3:
GISR4:
GISR5:
GISR6:
PHANTOM: RET
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -