打印
[CAN-bus/DeviceNet]

请大家看下我的初始化程序和寄存器定义地址是否正确?

[复制链接]
2184|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lg_forever|  楼主 | 2007-3-26 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MODE  EQU 0100H                 sja1000定义地址为0100H 
CMR   EQU 0101H
SR    EQU 0102H
IR    EQU 0103H
IER   EQU 0104H
BTR0  EQU 0106H
BTR1  EQU 0107H
OCR   EQU 0108H
ALC   EQU 010BH
ECC   EQU 010CH
EWLR  EQU 010DH
RXERR EQU 010EH
TXERR EQU 010FH
TXB   EQU 0110H              (定义的地址是否正确?)是否为0116H??
RXB   EQU 0110H               (定义的地址是否正确?)
RXCMD EQU 0115H
RTRDLC EQU 0110H             (定义的地址是否正确?)是否为0116H
ACR    EQU 0116H           (定义的ACR地址是否正确?)
AMR    EQU 0114H
RMC    EQU 011DH
RBSA   EQU 011EH
CDR    EQU 011FH
CBFRTP EQU 30H
FRNUM  EQU 40H
RECOK  BIT 00H
RFRM   BIT 01H
CANINI:                                ;初始化程序
       MOV  DPTR,#MODE                 ;方式寄存器
       MOV  A,#09H                     ;进入复位模式
       MOVX @DPTR,A                    
       MOV  DPTR,#CDR                 ;时钟分频寄存器
       MOV  A,#88H                     ;选择peliCAN模式,关闭时钟输出
       MOVX @DPTR,A                  
       MOV  DPTR,#IER                  ;中段允许寄存器
       MOV  A,#0DH                     ;开放发送中断,溢出中断和错误警告中断
       MOVX @DPTR,A                    
       MOV  DPTR,#AMR                  ;接收屏蔽寄存器
       MOV  R6,#4                      ;
       MOV  A,#0                       
AMRINI:
       MOVX @DPTR,A                    ;接收屏蔽寄存器赋予0,都参与滤波
       INC  DPTR
       DJNZ R6,AMRINI
       MOV  DPTR,#ACR                     
       MOV  R6,#4
       MOV  A,#0
ACRINI:
       MOVX @DPTR,A                    ;接收代码寄存器全置0(这样在自检测模式下是否可行?????)
       INC  DPTR
       DJZN R6,ACRINI
       MOV  DPTR,#BTR0                 ;总线定时寄存器0
       MOV  A,#03H                     
       MOVX @DPTR,A
       MOV  DPTR,#BTR1                 ;总线定时寄存器1
       MOV  A,#0FFH                    ;设置波特率
       MOVX @DPTR,A           
       MOV  DPTR,#OCR                  ;输出控制寄存器
       MOV  A,#0AAH
       MOV  @DPTR,A
       MOV  DPTR,#RBSA                 ;接收缓存器起始地址寄存器
       MOV  A,#0                       ;设置接收缓存器FIFO起始地址为0
       MOVX @DPTR,A
       MOV  DPTR,#TXERR                ;发送错误计数寄存器
       MOV  A,#0                       ;清除发送错误计数寄存器
       MOVX @DPTR,A
       MOV  DPTR,#ECC                  ;错误代码捕捉寄存器 
       MOVX A,@DPTR                    ;清除错误代码捕捉寄存器
       MOV  DPTR,#MODE                 ;方式寄存器
       MOV  A,#0CH                     ;设置自检测模式,单滤波接收方式,并返回工作状态                   
       MOVX @DPTR,A
       RET 

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

5

帖子

0

粉丝