问个程序的解释?

[复制链接]
2977|7
 楼主| ty118 发表于 2007-12-31 12:03 | 显示全部楼层 |阅读模式
这个是周立功的PDIUSBD12的固件程序的一段,想问一下:在Outportb()的函数调用中的D12_COMMAND是什么意思,还有D12_DATA是什么意思,好象不是一个普通的传递把,在程序的其他地方找不到这样的定义&gt在下面的j&lt&lt=8;j+=b1;为什么要这样的计算呢?百思不不的其解.谢谢各位的解释!
computer00 发表于 2007-12-31 12:12 | 显示全部楼层

D12_COMMAND和D12_DATA是两个地址,这个你看看D12的数据手册

它有命令地址和数据地址。这两个应该是宏定义,搜索一下应该可以找出来。<br /><br />j&lt&lt=8;&nbsp;&nbsp;//j已经读到一字节了,并且是高字节,所以将它左移8位<br /><br />j+=b1;&nbsp;&nbsp;//然后j再加上后面的8位,合并成一个16位的。<br /><br />
 楼主| ty118 发表于 2007-12-31 14:39 | 显示全部楼层

回复computer00

&nbsp;D12_COMMAND和D12_DATA是两个地址需要在程序的开始定义或者声明一吗?
computer00 发表于 2007-12-31 15:25 | 显示全部楼层

是的。你去找找,肯定可以找得到他们的定义。

  
 楼主| ty118 发表于 2007-12-31 16:33 | 显示全部楼层

在帮个忙?

#define&nbsp;D12_COMMAND(*(unsigned&nbsp;char&nbsp;xdata&nbsp;*)0xff01);<br />#define&nbsp;D12_DATA&nbsp;&nbsp;&nbsp;&nbsp;(*(unsigned&nbsp;char&nbsp;xdata&nbsp;*)0x7f02);<br />帮忙解释一下这个宏定义和括号内的星号是什么意思,没有见过这样的定义,
 楼主| ty118 发表于 2007-12-31 21:05 | 显示全部楼层

急呀!

大家帮忙看一下.谢谢拉!
computer00 发表于 2007-12-31 23:10 | 显示全部楼层

这是指针用法。后面的分号是错误的。

#define&nbsp;D12_COMMAND&nbsp;(*(unsigned&nbsp;char&nbsp;xdata&nbsp;*)0xff01)<br />#define&nbsp;D12_DATA&nbsp;&nbsp;&nbsp;&nbsp;(*(unsigned&nbsp;char&nbsp;xdata&nbsp;*)0x7f02)<br /><br />(unsigned&nbsp;char&nbsp;xdata&nbsp;*)0xff01&nbsp;这个的意思是强制将0xff01转化为一个unsigned&nbsp;char&nbsp;xdata型的指针,<br />假设这个指针为p,然后*p就是使用这个指针了。<br />
 楼主| ty118 发表于 2008-1-1 10:21 | 显示全部楼层

谢谢拉!

非常感谢你的解释!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

209

帖子

0

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