[CAN-bus/DeviceNet] 请教关于用P0口做为IO模拟总线对CAN进行读写操作.

[复制链接]
2899|2
 楼主| pjh012345 发表于 2007-8-18 10:37 | 显示全部楼层 |阅读模式
想用P0口作为IO模拟总线对CAN进行操作,不知道哪个老师有这样的经验的.<br />早上试了一下,没成功.<br />sbit&nbsp;P1_7=P1^7;//ALE<br />sbit&nbsp;P2_0=P2^0;SJA_CS<br />sbit&nbsp;P3_6=P3^6;//WR<br />sbit&nbsp;P3_7=P3^7;//RD<br />uchar&nbsp;addr;//CAN寄存器地址<br />uchar&nbsp;dat;//写进去的数据<br />void&nbsp;wrfunction(uchar&nbsp;addr,uchar&nbsp;dat)<br />{<br />&nbsp;&nbsp;P1_7=1;<br />&nbsp;&nbsp;P0=addr;<br />&nbsp;&nbsp;P2_0=0;<br />&nbsp;&nbsp;P1_7=0;<br />&nbsp;&nbsp;P3_6=0;<br />&nbsp;&nbsp;P0=dat;<br />&nbsp;&nbsp;P3_6=1;<br />&nbsp;&nbsp;_nop();<br />&nbsp;&nbsp;_nop();<br />&nbsp;&nbsp;_nop();<br />}<br />这是我的程序,请老师们帮忙看一下.谢谢了
zlgCAN 发表于 2007-8-19 08:16 | 显示全部楼层

参考SJA1000数据手册最后面的波形,满足即可。

  
 楼主| pjh012345 发表于 2007-8-19 20:47 | 显示全部楼层

请教关于用P0口做为IO模拟总线对CAN进行读写操作

谢谢ZLGCAN,我根据你的建议改了程序<br />但还是不行,不知道有没有范例<br />void&nbsp;WRfunction(uchar&nbsp;addr,uchar&nbsp;dat)<br />{<br />&nbsp;&nbsp;SJA1000_ALE=0;<br />&nbsp;&nbsp;_nop_();<br />&nbsp;&nbsp;SJA1000_RD=1;<br />&nbsp;&nbsp;SJA1000_ALE=1;<br />&nbsp;&nbsp;_nop_();<br />&nbsp;&nbsp;P0=addr;<br />&nbsp;&nbsp;SJA1000_ALE=0;<br />&nbsp;&nbsp;_nop_();<br />&nbsp;&nbsp;SJA1000_CS=0;<br />&nbsp;&nbsp;_nop_();<br />&nbsp;&nbsp;SJA1000_WR=0;<br />&nbsp;&nbsp;P0=dat;<br />&nbsp;&nbsp;_nop_();<br />&nbsp;&nbsp;SJA1000_WR=1;<br />&nbsp;&nbsp;_nop_();<br />&nbsp;&nbsp;SJA1000_ALE=1;<br /><br />}<br />我这个程序有问题吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部