bai5926
驱动牛犊
驱动牛犊
  • 注册日期2009-06-19
  • 最后登录2010-01-12
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1266回复:0

一个关于bulkloop的问题

楼主#
更多 发布于:2009-09-21 11:14
我用的bulkloop示例程序:if(!(EP2468STAT & bmEP2EMPTY))
  {
     if(!(EP2468STAT & bmEP6FULL))
     {  
        APTR1H = MSB( &EP2FIFOBUF );
        APTR1L = LSB( &EP2FIFOBUF );

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

        count = (EP2BCH << 8) + EP2BCL;

      
        for( i = 0x0000; i < count; i++ )
        {
          
           EXTAUTODAT2 = EXTAUTODAT1;
        }
        EP6BCH = EP2BCH;  
        SYNCDELAY;  
        EP6BCL = EP2BCL;        
        SYNCDELAY;                    
        EP2BCL = 0x80;        
     }

这个是从端点2发送,端点6直接接收的。 现在我想把端点2发送的数据存放到我自己设置的一个数组中,在对数组中的数据进行解析后,再由端点6发送出去。

if(!(EP2468STAT & bmEP2EMPTY))
    {
        APTR1H = MSB( &EP2FIFOBUF );
        APTR1L = LSB( &EP2FIFOBUF );

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

        count = (EP2BCH << 8) + EP2BCL;

      
        for( i = 0x0000; i < count; i++ )
        {
          
           EXTAUTODAT2 = EXTAUTODAT1;
        }
                
        SYNCDELAY;                    
        EP2BCL = 0x80;          
     }  
  
if(!(EP2468STAT & bmEP6FULL))
{
        APTR1H = MSB( &Sbuf );
        APTR1L = LSB( &Sbuf );
        AUTOPTRH2 = MSB( &EP6FIFOBUF );
        AUTOPTRL2 = LSB( &EP6FIFOBUF );
        for( i = 0x0000; i < count; i++ )
        {
           EXTAUTODAT2 = EXTAUTODAT1;
        }
        EP6BCH = EP2BCH;  
        SYNCDELAY;  
        EP6BCL = EP2BCL;
}  

改过之后端点6就不能使用了。显示:
Read IOCTL failed
连到系统上的设备没有发挥作用。

这个是什么问题,怎么才能把发送和接收分开来写?
游客

返回顶部