[CAN-bus/DeviceNet] PIC18F248,CAN 自测试程序在线调试时出现的问题

[复制链接]
 楼主| 发表于 2007-6-12 23:03 | 显示全部楼层 |阅读模式
程序如下:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;LIST&nbsp;&nbsp;&nbsp;&nbsp;P=18F248<br />&nbsp;&nbsp;&nbsp;&nbsp;INCLUDE&nbsp;&nbsp;&nbsp;&nbsp;&quot;P18F248.INC&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;CAN_FLAG&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;0x20<br />&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;&nbsp;&nbsp;&nbsp;0x0000<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;MAIN<br />&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;&nbsp;&nbsp;&nbsp;0x0008<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;CAN_INTSERVE<br />&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;&nbsp;&nbsp;&nbsp;0x30<br />INITIAL<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x08<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TRISB<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x80<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;CANCON<br />WAIT&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSS&nbsp;&nbsp;&nbsp;&nbsp;CANSTAT,OPMODE2<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;WAIT<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x01<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;BRGCON1<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x90<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;BRGCON2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x42<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;BRGCON3<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x03<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0CON&nbsp;&nbsp;&nbsp;&nbsp;;???????为什么写不进去???<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0xFF&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0SIDH&nbsp;;?????<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0xE0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0SIDL&nbsp;;?????<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x08<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0DLC&nbsp;&nbsp;&nbsp;&nbsp;;???<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x0F<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;BSR<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x01<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D1<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x02<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x03<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D3<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x04<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D4<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x05<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D5<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x06<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D6<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x07<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D7<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0xFF<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0SIDH<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0xE0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0SIDL<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x20<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0CON<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x08<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0DLC<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D1<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D3<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D4<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D5<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D6<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D7<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0xFF<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXF0SIDH<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0xE0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXF0SIDL<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXM0SIDH<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;RXM0SIDL<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;CIOCON<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x40<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;CANCON<br /><br /><br />WAIT2<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVF&nbsp;&nbsp;&nbsp;&nbsp;CANSTAT<br />&nbsp;&nbsp;&nbsp;&nbsp;ANDLW&nbsp;&nbsp;&nbsp;&nbsp;0xE0<br />&nbsp;&nbsp;&nbsp;&nbsp;SUBLW&nbsp;&nbsp;&nbsp;&nbsp;0x40<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSS&nbsp;&nbsp;&nbsp;&nbsp;STATUS,Z<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;WAIT2<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x00<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PIR3<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x01<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;PIE3<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0x01<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;IPR3<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br /><br />CAN_INTSERVE<br />WAIT3<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSS&nbsp;&nbsp;&nbsp;&nbsp;PIR3,RXB0IF<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;ERR_EXIT<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;CAN_FLAG,0<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;PIR3,RXB0IF<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0CON,RXFUL<br />ERR_EXIT<br />&nbsp;&nbsp;&nbsp;&nbsp;RETFIE<br /><br />MAIN&nbsp;&nbsp;&nbsp;&nbsp;NOP&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;INTCON<br />&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;INITIAL<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;&nbsp;0xC0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;INTCON<br />LOOP<br />&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;TXB0CON,TXREQ<br /><br />WAITE4&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSS&nbsp;&nbsp;&nbsp;&nbsp;PIR3,TXB0IF<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;WAITE4<br />WAITE5<br />&nbsp;&nbsp;&nbsp;&nbsp;BTFSS&nbsp;&nbsp;&nbsp;&nbsp;CAN_FLAG,0<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;WAITE5<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;CAN_FLAG,0<br />&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;TXB0CON,TXREQ<br />&nbsp;&nbsp;&nbsp;&nbsp;INCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D0,0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D0<br />&nbsp;&nbsp;&nbsp;&nbsp;INCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D1,0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D1<br />&nbsp;&nbsp;&nbsp;&nbsp;INCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D2,0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D2<br />&nbsp;&nbsp;&nbsp;&nbsp;INCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D3,0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D3<br />&nbsp;&nbsp;&nbsp;&nbsp;INCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D4,0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D4<br />&nbsp;&nbsp;&nbsp;&nbsp;INCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D5,0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D5<br />&nbsp;&nbsp;&nbsp;&nbsp;INCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D6,0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D6<br />&nbsp;&nbsp;&nbsp;&nbsp;INCF&nbsp;&nbsp;&nbsp;&nbsp;RXB0D7,0<br />&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;&nbsp;TXB0D7<br />&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;LOOP<br />&nbsp;&nbsp;&nbsp;&nbsp;RETURN<br />&nbsp;&nbsp;&nbsp;&nbsp;END<br /><br /><br /><br />出现的问题如下:<br />TXB0CON<br />TXB0SIDH<br />TXB0SIDL<br />TXB0DLC<br />这四个寄存器一直是初始值,写不进新值,很困惑,不知各位遇到过这样的问题没有..
发表于 2007-6-13 11:30 | 显示全部楼层

rt

程序没细看~~<br />寄存器写不了值,检查一下硬件,特别是那些引脚。<br />另外读写地址要对,如果弄错,也不能正常~~~~
 楼主| 发表于 2007-6-13 22:19 | 显示全部楼层

工作正常了。

大概是我用DEBUGGER时没有设置好.直接把程序PROGRAM到芯片里就工作正常了。谢谢桂电飞天鼠.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

0

粉丝
快速回复 返回顶部 返回列表