用2407调试CAN,发送不出数据,感觉没什么问题,但是发送不出去,不知道问题出在哪,请各位帮忙看看,谢谢
程序:
_c_int0
setc SXM
setc INTM ;关总中断
clrc CNF
splk #0000,IMR ;B0区被配置为数据空间
ldp #0e0h
splk #082feh,SCSR1 ;30M主频
ldp #DP_PF1
splk #0e8h,WDCR ;不使能WDT
call can_init
LDP #DP_CAN
SPLK #0482H,MCR ;CAN处于正常工作模式
splk #0004H,MDER ;enable mailbox r0/r1/s2/s3/s4/s5
SPLK #0000H,CAN_IMR ;Disable all interrupt
SPLK #0FFFFH,CAN_IFR
LDP #DP_CAN
SPLK #0000H,MDER ;使能位为0
splk #0102H,MCR ;cdr=1
LDP #DP_CAN2
SPLK #8CF1H,MSGID2H ;标识符
SPLK #1F05H,MSGID2L
SPLK #08H,MSGCTRL2 ;控制寄存器
SPLK #00010H,MBX2A
SPLK #00022H,MBX2B
SPLK #00011H,MBX2C
SPLK #00020H,MBX2D
loop
LDP #DP_CAN
SPLK #0480H,MCR ;CDR=0
SPLK #0004H,MDER ;邮箱2使能
LDP #DP_CAN
SPLK #0010H,TCR ;邮箱2发送使能
dengyingda1
LDP #DP_CAN
BIT TCR,BIT12 ;等待发送应答位置位
BCND dengyingda1,NTC
LDP #DP_CAN
SPLK #1000H,TCR ;清发送应答
DELAY
LACC #6000
KEYD1
SUB #1
RPT #80
NOP
BCND KEYD1,NEQ
b loop
can_init
ldp #DP_PF2
lacl MCRB
or #0C0H
sacl MCRB ;C6,C7配置为CANRX和CANTX
ldp #DP_CAN ;邮箱2、3都设置为发送
splk #0000H,CAN_IMR
SPLK #0000H,MDER ;邮箱23都设置为发送,不使能邮箱
splk #1000h,MCR
W_CCE
bit GSR,BIT4
bcnd W_CCE,NTC
splk #07H,BCR2
splk #003DH,BCR1
lacl MCR
and #0EFFFH
sacl MCR
W_NCCE
bit GSR,BIT4
bcnd W_NCCE,TC
RET
|