room2009934
驱动牛犊
驱动牛犊
  • 注册日期2007-04-04
  • 最后登录2008-06-04
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望11点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1162回复:1

求助:端点缓冲去的问题(有程序)

楼主#
更多 发布于:2008-01-21 14:26
我把bulkloop这个例子中的程序改为:(也就是把判断端点6的缓冲区是否满了注释掉)

自己认为出现的结果应该是:(对ep6没有回读)
对ep2一直可以发数据,而ep6不断的接受数据(新数据覆盖旧数据),但通过上板子验证之后,发现不是这样的结果。ep6只能接收2包数据,好像它满了之后就不能接收数据了。不知道为什么?按理说应该新数据覆盖旧数据的啊。请各位大侠帮忙啊。
if(!(EP2468STAT & bmEP2EMPTY))
  { // check EP2 EMPTY(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is empty
 //    if(!(EP2468STAT & bmEP6FULL))
  //   {  // check EP6 FULL(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is full
        APTR1H = MSB( &EP2FIFOBUF );
        APTR1L = LSB( &EP2FIFOBUF );

        AUTOPTRH2 = MSB( &EP6FIFOBUF );
        AUTOPTRL2 = LSB( &EP6FIFOBUF );

        count = (EP2BCH << 8) + EP2BCL;

        // loop EP2OUT buffer data to EP6IN
        for( i = 0x0000; i < count; i++ )
        {
           // setup to transfer EP2OUT buffer to EP6IN buffer using AUTOPOINTER(s)
           EXTAUTODAT2 = EXTAUTODAT1;
        }
        EP6BCH = EP2BCH;  
        SYNCDELAY;  
        EP6BCL = EP2BCL;        // arm EP6IN
        SYNCDELAY;                    
        EP2BCL = 0x80;          // re(arm) EP2OUT
   // }
  }
llss2007
驱动小牛
驱动小牛
  • 注册日期2007-09-25
  • 最后登录2010-03-16
  • 粉丝5
  • 关注0
  • 积分1001分
  • 威望123点
  • 贡献值0点
  • 好评度112点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-01-26 17:13
Please  give me  the  background  of  you  program.
在交流中前进
游客

返回顶部