djsnake
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-07-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2176回复:17

在大家的帮助下,我的D12枚举已经成功,为了感谢曾经帮助过我的人,现每人将得到20分,同时希望大家来帮我解决解决下面的问题,谢谢!!!

楼主#
更多 发布于:2003-07-12 14:42
在大家的帮助下,我的D12枚举已经成功,现在我想把A/D采集到的数据通过USB口发送出去,但出现以下问题:当我把采集程序加进去时,枚举就不成功,当把采集程序去掉时,枚举就可以了(我的数据采集部分通过中断零 IN0实现,枚举占有的中断是INT1),请问我该如何解决?谢谢!!!!!!!!!!!!!
luckyjm
驱动中牛
驱动中牛
  • 注册日期2002-12-19
  • 最后登录2004-03-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-12 14:50
为什么不直接把AD采进来的数据通过读写信号送给USB而要用程序那?
chenjp
驱动小牛
驱动小牛
  • 注册日期2003-03-11
  • 最后登录2009-05-05
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-12 14:59
INT0的优先权要比INT1的高,你可以通过设置中断优先级寄存器IP:PX1=1,来设定INT1为高优先级。
djsnake
驱动牛犊
驱动牛犊
  • 注册日期2002-10-29
  • 最后登录2003-07-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-12 17:03
我的 A/D转换器和USB芯片是在一块板子上
luckyjm
驱动中牛
驱动中牛
  • 注册日期2002-12-19
  • 最后登录2004-03-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-13 08:38
对啊,我就是说把你的AD数据线直接连USB,然后用CPLD控制逻辑产生读写信号控制AD采集和USB的读写信号,这样不就行了吗?
z_bing
驱动中牛
驱动中牛
  • 注册日期2002-09-28
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-13 08:58
不用程序怎么采集?MCU的数据线不是连接到D12上了吗?如果把A/D的数据也连接到D12上会不会发生冲突?
爱国守法,明理诚信,团结一致,战胜非典!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-13 09:02
可能是应为你过早的打开了ad的中断,这样usb的终端就没时间得到处理了,你可以把usb的中断处理过程都放到中断服务程序中去,不要在主程序中进行,然后再把usb的中断优先级设的高一点,或者在枚举完成之后再打开采集部分的中断即可
rainsender
驱动牛犊
驱动牛犊
  • 注册日期2003-07-11
  • 最后登录2005-07-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-13 13:33
你的枚举是怎么成功的?
我遇到与你相似的问题?
是加上了74HCT123的电路了吗?
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-13 16:21
我没有加74HCT123,我的问题是USB的复位电路有问题
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-13 17:11
我的数据采集部分用的是ADC0809,电路用的是ADC0809数据单上的典型电路,我现在的问题是:0809数据线上有信号,START、EOC、OE也正确,但输出结果是零,这是为什么:大家来帮帮忙,谢谢!!!

相关参数:
    ADC = 0x7ff8 ;     //定义A/D的端口地址
          ADCdata = 0x1000;  //定义数据缓冲器地址
     i = 8;

数据采集中断程序
adc_das() interrupt 0
{
         bEPPflags.bits.das_flag = 1;
        
        tmp = *ADC;    //读取A/D转换结果
        *ADCdata = tmp;//结果值存储到数据缓存区
         ADCdata++;     //数据缓存区指针地址加1
        i--;
         *ADC = i;      //启动下一个模拟输入通道A/D转换
        
  }

发送程序:
    if (bEPPflags.bits.setup_packet)
            {
            DISABLE;
            bEPPflags.bits.setup_packet = 0;
            ENABLE;
            control_handler();
            D12SUSPD = 1;     //释放D12的挂起状态
            
             } // if setup_packet
         else
       {  
          
       IT0  = 1;          //设置IN0为边沿触发  
              EX0  = 1;          //允许外部中断0中断
              PX0  = 0;          //设置为低优先级
       *ADC = i ;         //启动ADC0809  
          // while(i);       //等待8个通道A/D转换完毕
       main_txdone();  
}

主端点发送:
void main_txdone(void)reentrant
{
    unsigned char len,epstatus;

    D12_ReadLastTransactionStatus(5); /* Clear interrupt flag */
    
    epstatus = D12_ReadEndpointStatus(5);//读取缓存区状
 
    epstatus &=0x60;
 len = D12_WriteBuffer(5,ADCdata,64);
    if(epstatus == 0x60)
    {
        len = D12_WriteBuffer(5,ADCdata,64);//写入双缓存数据
     }
}

jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-07-13 19:40
呵呵,我用的片子和mcu和你的都不一样
把程序给了你只能增加你的负担
你还是一点一点调吧
有问题就把现象贴出来。
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-07-13 20:14
你用的不是PDIUSBD12和AT89C52吗?我估计MCU 和USB芯片应该一样吧,可能不一样的只是ADC?望你能在百忙中给我发一份,拜托了,谢谢duanjong@163.com,如果您实在很忙没有时间给我发E_MAIL的话,请回复上面提到的问题,谢谢!!!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-07-13 20:59
呵呵,我用的mcu是ti的dsp,usb芯片是isp1581,与其你花功夫看懂我的程序,不如多调几遍自己的程序,我可以把通用的chap9.c提供给你,你可以参考参考,因为我的usb寄存器地址被映射到了dsp的数据空间,因此我在c程序中用指针来访问寄存器:
附件名称/大小 下载次数 最后更新
2003-07-13_Isp15812003.rar (6KB)  7
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-07-14 13:56
虽然对我现在遇到的问题毫无用途,但还是要谢谢你,奖励你10分

[编辑 -  7/14/03 by  duanjong]
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-07-14 15:36
分呢????
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-07-14 15:52
我的帐号djsnake突然不能用了,我已通过duanjong这个帐号给你加了10分,请查看。
lpyczn
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2010-05-03
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-07-15 10:22
TO:jinghuiren大虾,
你好!现在兄弟我也在做USB数据采集板,DSP用的是TMS320LF2407,AD用的是400K的14位的LTC1416,USB芯片用的是PDIUSBD12;和你开发的项目有很多相近的的地方,还请jinghuiren大虾多多指点!
不知道能否看看jinghuiren大虾的AD数据采集和USB配合的参考代码,兄弟我将不胜感激!!!
我的邮箱:lpyczn@sina.com
望jinghuiren大虾在百忙之中回复!等待~~~~~~~~
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-07-15 13:04
郁闷,还是不行
游客

返回顶部