bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1591回复:11

rayyang2000斑竹,请进

楼主#
更多 发布于:2004-07-13 21:54
上次我的89C52+D12的速度还是没搞定,我估计还是固件代码的问题,请斑竹大发慈悲,把你以前做的固件代码给小弟一分参考参考吧,我真的很急啊。我的email是: bobbysun2000@sina.com
bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-14 12:59
斑竹不在吗?
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-14 17:01
只剩下那个zboard了,其他的代码找不到了  sorry
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-14 18:49
zboard是什么?顺便问两个问题:
1.做双缓冲读时,有
  len = D12_ReadEndpoint(4, 64, EpBuf);
epstatus=D12_ReadEndpointStatus(4);
epstatus &= 0x60;
if (epstatus == 0x60)
  len = D12_ReadEndpoint(4, 64, EpBuf);//读取双缓冲区数
这段程序中的EpBuf是不是要分配128字节?且读双缓冲时,是不是应该改成  len = D12_ReadEndpoint(4, 64, EpBuf+64);

2.怎样做双缓冲写呢?我试着写了一下,你看对吗?
  D12_WriteEndpoint(4, 64, EpBuf);
  epstatus=D12_ReadEndpointStatus(4);
  epstatus &= 0x60;
  if(epstatus!=0x60)
  D12_WriteEndpoint(4, 64, EpBuf);
谢谢!
bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-15 12:57
斑竹你老人家在吗?
bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-15 21:43
斑竹你老人家在哪儿啊?哥们急啊!
xulingfei
驱动牛犊
驱动牛犊
  • 注册日期2004-06-13
  • 最后登录2009-03-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-16 11:41
你的速度有多少?我的单片机的晶振是11.0154M,现在读写的速度是60K/s.我想如果还一个快点的单片机,速度会有几百k!dsp和arm的话速度就更快了!
bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-16 14:28
哦。我的才32K,晶振是24MHz的,能不能把你的固件代码发一个我参考一下?
bobbysun2000@sina.com
xulingfei
驱动牛犊
驱动牛犊
  • 注册日期2004-06-13
  • 最后登录2009-03-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-16 14:54
在中断函数中将些函数展开(不要调用任何函数)。底层函数也是各问题,要用最少的代码来写数据!你这样改写,速度应该能上去!

还有你用的是什么的固件,是不是用周立功的固件库文件了?如果是的话,速度就不会很快了!

我开始只有十几k,后来就上到60k了!
bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-16 20:38
我用的就是D12。没有,我用自己的驱动,自己的应用程序。
我的端点2的发送中断就那几句,怎么展开呢?
 if(datanum>0)
{
 if(datanum>64)
 {
  D12_WriteEndpoint(5,64,EpBuf);
  datanum=datanum-64;
 }
  else
 {
  D12_WriteEndpoint(5,datanum,EpBuf);
  datanum=0;
 }
}  
bobbysun2000
驱动小牛
驱动小牛
  • 注册日期2003-08-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-07-17 16:12
xulingfei ,你也不在吗?
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-20 21:43
双缓冲的具体细节忘记了,只记得说,EP2的FIFO其实是128bytes的,如果你写前面的64bytes后,可以直接就写后面的64bytes(当然对firmware来说,看起来是向老地方写),不用等前面的64bytes发送完才开始写下面的。

这样说,不知道你清楚没有,好像有点绕口,呵呵 :D
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部