dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1436回复:6

关于读中断寄存器的一个小问题

楼主#
更多 发布于:2002-12-10 13:54
我读中断寄存器,读出了个03H..非常不解...01H是CONTROL OUT
02H是CONTROL IN 可是03H是什么啊??既进又出???怎么处理阿
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-12 13:34
  我看过的例子里是用if语句来实现的,比如说isr_ep0out=01h,isr_ep0in=02h你从中断寄存器中读出来的值放在intreg里面,那你可以这样判断:
if(intreg & isr_ep0out)
{isr_ep0rxdone()}
if(intreg & isr_ep0in)
{isr_ep0txdone()}
这样的话就可以按顺序执行了,我也不清楚这是不是为了考虑中断优先级的原因,但是同时有几个中断位置位的情况很可能会存在的,尤其是2.0的情况。
  以上仅做参考,因为我还没有开始调试,具体行不行我也不知道。
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-12 09:04
自己顶
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-11 11:48
如果你的中断里不是用switch做的话,同时出现是有可能的。


怎么用??
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-11 11:43
应该是按照你固件里的执行顺序执行吧,如果是先执行OUT,那做完后再执行IN,如果你的中断里不是用switch做的话,同时出现是有可能的。
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-10 17:18
快下班了.自己先顶一顶....
qianyu123
驱动小牛
驱动小牛
  • 注册日期2002-11-22
  • 最后登录2007-09-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-10 14:46
   我这SL811HS主方式同你的不一样,帮不上。
游客

返回顶部