在线时间0 小时
UID223006
注册时间2010-9-23
NXP金币0
该用户从未签到
新手上路

- 积分
- 115
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2010-11-17 09:52:07
|
显示全部楼层
RE:CAN同步问题!
main:
_Startup:
Entry:
LDS #__SEG_END_SSTACK ; initialize the stack pointer
LDAA #$01 ;进入初始化
STAA CAN0CTL0
LOOP1:
BRCLR CAN0CTL1,#$01,LOOP1 ;看是否真正进入初始化
LDAA #$80;C0
STAA CAN0CTL1 ;使能,系统时钟 NO LOOP
LDAA #$C1;01 ;0F
STAA CAN0BTR0
LDAA #$67 ;1C
STAA CAN0BTR1 ;波特率设置
;**************
LDAA #$10
STAA CAN0IDAC
LDAA #$20
STAA CAN0IDAR0
LDAA #$00
STAA CAN0IDMR0
LDAA #$00
STAA CAN0IDAR1
LDAA #$07
STAA CAN0IDMR1
LDAA #$00
STAA CAN0IDAR2
LDAA #$00
STAA CAN0IDMR2
LDAA #$00
STAA CAN0IDAR3
LDAA #$07
STAA CAN0IDMR3
LDAA #$00
STAA CAN0IDAR4
LDAA #$00
STAA CAN0IDMR4
LDAA #$00
STAA CAN0IDAR5
LDAA #$07
STAA CAN0IDMR5
LDAA #$00
STAA CAN0IDAR6
LDAA #$00
STAA CAN0IDMR6
LDAA #$00
STAA CAN0IDAR7
LDAA #$07
STAA CAN0IDMR7
;**************
; LDAA #$00 ;完成初始化
; STAA CAN0CTL0
BCLR CAN0CTL0,#$01
LOOP2:
BRSET CAN0CTL1,#$01,LOOP2 ;初始化是否已经完成
LOOP3:
; BRCLR CAN0CTL0,#$10,LOOP3 ;同步否 暂时去掉同步判断
NOP
LOOP4:
TST CAN0TFLG
BEQ LOOP4 ;相同或不相同
MOVB CAN0TFLG,CAN0TBSEL ;CAN0TBSEL=CAN0TFLG
MOVB CAN0TBSEL,abcd ; abcd=CAN0TBSEL
LDAA #$20 ;id
STAA CAN0TXIDR0
LDAA #$00
STAA CAN0TXIDR1
LDAA #$00
STAA CAN0TXIDR2
LDAA #$00
STAA CAN0TXIDR3
LDAA #$08 ;8位字节长
STAA CAN0TXDLR
LDAA #$00
STAA CAN0TXTBPR ;配置优先级
LDAA #$F8
STAA CAN0TXDSR0 ;data
LDAA #$8F
STAA CAN0TXDSR1 ;data
MOVB abcd,CAN0TFLG ;清除TxE位,发送 CAN0TFLG=abcd
LOOP5:
; TST CAN0TFLG ;发送成功了没?
; BEQ LOOP5
LDAA abcd
ANDA CAN0TFLG
TSTA
BEQ LOOP5
; while(!(CANTFLG & txbuffer));
LOOP6:
NOP
LDX #$3996 ;延时
DLOOP: DEX
BNE DLOOP
NOP
NOP
NOP
BRA LOOP4 ;*************
;
LOOP7:
BRCLR CAN0RFLG,#$01,LOOP7 ;
MOVB CAN0RXDSR0,acd
bset CAN0RFLG,#$01
bra LOOP4
END
大家有空帮我瞧瞧 |
|