ciliahj
驱动牛犊
驱动牛犊
  • 注册日期2005-07-18
  • 最后登录2005-08-30
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2564回复:5

求助:实现OHCI协议时写入了ED地址到HcControlHeadED寄存器怎么没有WDH中断?

楼主#
更多 发布于:2005-07-19 10:01
  我是新手,请大虾们多多指教!谢谢啦!
  我已经设置了以下几个寄存器:(拔插设备已经可以收到RHSC中断)
  HcInterruptEnable MIE = 1;
                                 RHSC = 1;
                                 WDH = 1;
   HcControl  HCFS = 2;
                    CLE = 1;
   HcCommandStatus CLF = 1;
   然后把设置好的ED写入HcControlHeadED里,HC应该处理这个ED下的TD然后触发WDH中断,可是我却一直没等到WDH中断,究竟是怎么回事啊?是不是我少设置了什么寄存器?或者是其他什么问题?

   谢谢!
hantian_2005
驱动牛犊
驱动牛犊
  • 注册日期2005-02-14
  • 最后登录2006-12-21
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望6点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-19 15:14
TD.control 没设好 有个中断延迟 你可能设成111了
ciliahj
驱动牛犊
驱动牛犊
  • 注册日期2005-07-18
  • 最后登录2005-08-30
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-20 14:25
没有啊,这个中断延迟我设置为0了。唉,我觉得该设置的都设置了呀
HcControlHeadED里写入了ED的地址,这个地址应该就是分配的内存地址吧?
下边是我设置的Hc ED和TD
ED: MaxPacketSize = 8;
       Format = 0;
       sKip = 0;
       Speed = 0;//full speed device
       Direct = 0;//get from td
       EndPointNumber = 0;
       FunctionAddress = 0;
       TDQueueHead = 0x1c180;
       TDQueueTail = 0x1c190;
       ToggleCarry = 0;
       Halted = 0;
       NextED = 0;
TD head:(address:0x1c180)
       CompletionCode = 15;
       ErrorCode = 0;
       DataToggle = 2;//control transfer,setup phase
       DelayInterrupt = 0;
       DirectPID = 0;//Setup
       BufferRounding = 0;
       CurrentBufferPointer = 0x19168;
       NextTD = 0x1c190;
       BufferEnd = 0x1916f;
TD Tail:(address: 0x1c190)
       CompletionCode = 15;
       ErrorCode = 0;
       DataToggle = 3;//control transfer,status phase
       DelayInterrupt = 0;
       DirectPID = 2;//Out
       BufferRounding = 0;
       CurrentBufferPointer = 0;
       NextTD = 0;
       BufferEnd = 0;

下面是引用hantian_2005于2005-07-19 15:14发表的:
TD.control 没设好 有个中断延迟 你可能设成111了
ciliahj
驱动牛犊
驱动牛犊
  • 注册日期2005-07-18
  • 最后登录2005-08-30
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-20 14:31
没有啊,这个中断延迟我设置为0了。唉,我觉得该设置的都设置了呀
HcControlHeadED里写入了ED的地址,这个地址应该就是分配的内存地址吧?
下边是我设置的Hc ED和TD
ED: MaxPacketSize = 8;
       Format = 0;
       sKip = 0;
       Speed = 0;//full speed device
       Direct = 0;//get from td
       EndPointNumber = 0;
       FunctionAddress = 0;
       TDQueueHead = 0x1c180;
       TDQueueTail = 0x1c190;
       ToggleCarry = 0;
       Halted = 0;
       NextED = 0;
TD head:(address:0x1c180)
       CompletionCode = 15;
       ErrorCode = 0;
       DataToggle = 2;//control transfer,setup phase
       DelayInterrupt = 0;
       DirectPID = 0;//Setup
       BufferRounding = 0;
       CurrentBufferPointer = 0x19168;
       NextTD = 0x1c190;
       BufferEnd = 0x1916f;
TD Tail:(address: 0x1c190)
       CompletionCode = 15;
       ErrorCode = 0;
       DataToggle = 3;//control transfer,status phase
       DelayInterrupt = 0;
       DirectPID = 2;//Out
       BufferRounding = 0;
       CurrentBufferPointer = 0;
       NextTD = 0;
       BufferEnd = 0;
hantian_2005
驱动牛犊
驱动牛犊
  • 注册日期2005-02-14
  • 最后登录2006-12-21
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望6点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-07-24 22:40
host controller在工作么,数据成功发送了么,DelayInterrupt不要设成零试试
playerthinker
驱动牛犊
驱动牛犊
  • 注册日期2014-05-03
  • 最后登录2014-08-07
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2014-05-04 22:59
楼主,解决了吗?什么 问题,我也遇到了。解决了一的话,告诉我一下吧,1263174944@qq.com
游客

返回顶部