阅读:2176回复:17
在大家的帮助下,我的D12枚举已经成功,为了感谢曾经帮助过我的人,现每人将得到20分,同时希望大家来帮我解决解决下面的问题,谢谢!!!
在大家的帮助下,我的D12枚举已经成功,现在我想把A/D采集到的数据通过USB口发送出去,但出现以下问题:当我把采集程序加进去时,枚举就不成功,当把采集程序去掉时,枚举就可以了(我的数据采集部分通过中断零 IN0实现,枚举占有的中断是INT1),请问我该如何解决?谢谢!!!!!!!!!!!!!
|
|
沙发#
发布于:2003-07-12 14:50
为什么不直接把AD采进来的数据通过读写信号送给USB而要用程序那?
|
|
板凳#
发布于:2003-07-12 14:59
INT0的优先权要比INT1的高,你可以通过设置中断优先级寄存器IP:PX1=1,来设定INT1为高优先级。
|
|
地板#
发布于:2003-07-12 17:03
我的 A/D转换器和USB芯片是在一块板子上
|
|
地下室#
发布于:2003-07-13 08:38
对啊,我就是说把你的AD数据线直接连USB,然后用CPLD控制逻辑产生读写信号控制AD采集和USB的读写信号,这样不就行了吗?
|
|
5楼#
发布于:2003-07-13 08:58
不用程序怎么采集?MCU的数据线不是连接到D12上了吗?如果把A/D的数据也连接到D12上会不会发生冲突?
|
|
|
6楼#
发布于:2003-07-13 09:02
可能是应为你过早的打开了ad的中断,这样usb的终端就没时间得到处理了,你可以把usb的中断处理过程都放到中断服务程序中去,不要在主程序中进行,然后再把usb的中断优先级设的高一点,或者在枚举完成之后再打开采集部分的中断即可
|
|
7楼#
发布于:2003-07-13 13:33
你的枚举是怎么成功的?
我遇到与你相似的问题? 是加上了74HCT123的电路了吗? |
|
8楼#
发布于:2003-07-13 16:21
我没有加74HCT123,我的问题是USB的复位电路有问题
|
|
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);//写入双缓存数据 } } |
|
10楼#
发布于:2003-07-13 19:40
呵呵,我用的片子和mcu和你的都不一样
把程序给了你只能增加你的负担 你还是一点一点调吧 有问题就把现象贴出来。 |
|
11楼#
发布于:2003-07-13 20:14
你用的不是PDIUSBD12和AT89C52吗?我估计MCU 和USB芯片应该一样吧,可能不一样的只是ADC?望你能在百忙中给我发一份,拜托了,谢谢duanjong@163.com,如果您实在很忙没有时间给我发E_MAIL的话,请回复上面提到的问题,谢谢!!!
|
|
12楼#
发布于:2003-07-13 20:59
呵呵,我用的mcu是ti的dsp,usb芯片是isp1581,与其你花功夫看懂我的程序,不如多调几遍自己的程序,我可以把通用的chap9.c提供给你,你可以参考参考,因为我的usb寄存器地址被映射到了dsp的数据空间,因此我在c程序中用指针来访问寄存器:
|
|
|
13楼#
发布于:2003-07-14 13:56
虽然对我现在遇到的问题毫无用途,但还是要谢谢你,奖励你10分
[编辑 - 7/14/03 by duanjong] |
|
14楼#
发布于:2003-07-14 15:36
分呢????
|
|
15楼#
发布于:2003-07-14 15:52
我的帐号djsnake突然不能用了,我已通过duanjong这个帐号给你加了10分,请查看。
|
|
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大虾在百忙之中回复!等待~~~~~~~~ |
|
17楼#
发布于:2003-07-15 13:04
郁闷,还是不行
|
|