zhangzhuoliang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望42点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1403回复:7

端点1的in中断问题!

楼主#
更多 发布于:2004-02-26 23:08
书上说端点1,2的in中断是在数据发送完成是才产生!那是不是在端点1的in中断程序中不能写数到缓冲区呢?(因为中断在写数据以后产生),那如果是这样我怎么才能答上位机的in请求呢?!
这个问题困扰我很久了,我在论坛上没找到答案!那位大人能帮帮我,谢谢了!
jjtjjt1234
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-04-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-26 23:27
端点1,2的in中断是在数据发送完成是才产生的,数据发送完了
端点不就空了吗,这时就可以在中断程序中向端点写数据了,写完数据并不一定发送,所以也不会产生中断,只有等在程序中其他地方
执行了EP1BCL 和 EP1BCH 的赋值后,系统才传输数据,传完后再产生中断。
jiang
zhangzhuoliang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望42点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-27 09:33
谢谢了!不过我想知道什么是EP1BCL 和 EP1BCH 啊!能说明一下吗?
还有什么是csw和cbw啊!
我在philips的sheet也没找到  :(
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-27 10:53
他用的cypress的片子,你在philips的datasheet上当然找不到!
如果你的中断产生情况不能控制,那么有两种方法可以实现通讯:
1,当主机准备好接收数据后,先发送一个vendor request给设备表明自己可以接收数据,然后发送读数据命令。设备收到后置一个标志,当设备方数据准备好后就先把第一批数据写到端点里,这时数据会自动发走,然后有中断产生,在中断里把剩余的数据发给主机。
2,设备启动后先把缓冲区空标志置1,设备有数据产生时判断这个标志,为1就先把端点填满,然后清标志并等待或循环查询,数据发走后会有中断,在中断服务程序中把缓冲区空标志置1,这是主程序会判断到这个标志,接着发送数据。直到发送完毕,注意,当数据发送完毕后该标志应该还是1!你发送数据的地方应该有记数才对。
jjtjjt1234
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2005-04-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-27 10:53
EP1BCL 和 EP1BCH 是EZ-USB中的,(我不知PHLIPS怎么样),它
表示要传输多少字节,这两个寄存器写数据后,如果主机的IN请求到了,就把数据读进去了。
jiang
freasy
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-27 11:16
philips的d12是缓冲区第2个字节表示传输的字节数
zhangzhuoliang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望42点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-02-27 17:12
谢谢大家怎么给分啊!TOjinghuiren:
我的驱动是用的d12test.dll,不时自己遍的对于上位机的操作我只能
用readport和writeport这两个函数不能控制主机向DIVERCE发IN 或
out包那我怎么实现你的方法1!!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-02-27 18:15
那就用第二种方法。
游客

返回顶部