[CAN-bus/DeviceNet] 不理解这段程序为什么能实现将所有消息对象清零,关于CAN

[复制链接]
 楼主| milan111 发表于 2008-4-19 00:42 | 显示全部楼层 |阅读模式
void&nbsp;clear_msg_objects&nbsp;(void)&nbsp;//将所有消息清零<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SFRPAGE&nbsp;=&nbsp;CAN0_PAGE;<br />&nbsp;&nbsp;&nbsp;&nbsp;CAN0ADR&nbsp;=&nbsp;IF1CMDMSK;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CAN0DATL&nbsp;=&nbsp;0xFF;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=1;i&lt33;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAN0ADR&nbsp;=&nbsp;IF1CMDRQST;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CAN0DATL&nbsp;=&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />}<br />
lnskngdc 发表于 2008-4-21 13:05 | 显示全部楼层

你用的是C8051f040吧?

你用的是C8051f040吧?<br /><br />CAN0ADR&nbsp;=&nbsp;IF1CMDRQST;&nbsp;<br /><br />CAN0DATL&nbsp;=&nbsp;i;<br /><br />这句话就是通过IFx向消息对象清零的最后命令,一旦IF1CMDRQST被写入1~32的数字,相应的消息对象数据都被IFx对应的寄存器改写了。建议详细读一下datasheet,多看几遍,会有帮助的,这个是面向对象的思维方式,跟老51不同。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

62

帖子

0

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