jrmforever
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2010-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:997回复:2

为什么单步走就可以,全速跑起来就不可以呢

楼主#
更多 发布于:2004-08-26 19:03
我现在按照WLY76说的过程

先是一些初始化,使能地址和端口此时GL灯亮,然后重新连接

GL灯灭。然后读中断寄存器!!!

第一个问题就处在这里。。。如果我全速跑,。。。到这里。。。

就进中断I_st=0x40,而且进去之后程序就超时。如果单步走就没问题.然后读出来的i_st就是0xc1.
接下来在单步走。。一直走到get_descriptor()这个函数


第二个问题就又出现了。。我再单步走。就走不下去了。也时超时


我想出现第二个问题可能是因为我单步执行可能错过了发送描述符

的时间,主机不认。但是如果全速跑的话,更差。。。请问可能问题处在什么地方????


还有我读中断寄存器后,,int引脚也不能变高啊。。。。


什么原因阿!!!!!


 :( :( :( :( :( :(

最新喜欢:

crazyqpcrazyq...
LikeDDK
驱动牛犊
驱动牛犊
  • 注册日期2001-09-30
  • 最后登录2004-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-27 00:25
to jrmforever

"还有我读中断寄存器后,,int引脚也不能变高啊。。。。"
引用D12资料的一句话:
命令F4h
该命令指示中断的来源通过读端点最后处理状态寄存器将端点中断位位(0-5) 清零其它位在读中断寄存器后被清零。

不知道你有没有读最后处理状态寄存器?

还要注意的是,如果主机发get descriptor没有收到回应的话,它会继续多发两次,总共3次,也就是说如果你没有正确回应的话,D12将会有3个控制输出的中断。如果你请完中断寄存器后再遇到控制输出中断的话,现象就是“INT引脚不变高”
xxczsy123456
驱动牛犊
驱动牛犊
  • 注册日期2004-08-12
  • 最后登录2006-05-15
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-26 20:09
进入中断处理函数后要关中断,出来时要开中断
游客

返回顶部