USB论坛-百合电子工作室USB专题站

 找回密码
 我要注册
搜索
热搜: USB学习板
查看: 4608|回复: 1
打印 上一主题 下一主题

程序理解

[复制链接]

3

主题

0

好友

75

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2014-6-17 18:19:32 |显示全部楼层 |倒序浏览
void outportcmd(unsigned char value)
{
        *((unsigned char xdata *)D12_COMMAND)=value;
}
这是USB固件程序里的一个写命令函数,硬件上讲A0口接地了,没有进行数据/命令的选择,D12_COMMAND的值是0XFF02,我想知道以上的这个函数与
void outportb(INT16U Addr, INT8U Data)
{
        if(Addr == D12_COMMAND)        //命令
        {
                bD12_A0                = 1;
        }
        else if(Addr == D12_DATA)        //数据
        {
                bD12_A0                = 0;
        }
        else                                                                //出入  01
        {
        }
        ucD12_DataPort        = Data;
        bD12_WR                = 0;         //使有效         数据立即被读取
        bD12_WR                = 1;          
}

效果是一样的吗?D12_COMMAND表示地址的话,写到哪去了,求管理员解答一下,谢谢!
回复

使用道具 举报

3

主题

0

好友

75

积分

注册会员

Rank: 2

沙发
发表于 2014-6-20 10:02:35 |显示全部楼层
baiheee 发表于 2014-6-19 16:22
A0不能接地哦,向D12写的数据有可能是命令,有可能是数据,所以A0不能接地的

您好!我还是有点不理解,*((unsigned char xdata *)D12_COMMAND)=value这个函数的作用跟您的那个效果应该是一样的,但是他是直接写数据命令到地址,没有选择A0口,这样也可以的吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

USB开发网 (渝ICP备09006681号-4)

GMT+8, 2024-5-8 04:29 , Processed in 0.036896 second(s), 19 queries .

百合电子工作室版权所有
回顶部