我在用9812遇到如下问题,请大家帮忙。 点击:710 | 回复:4



    
  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 9回
  • 年度积分:0
  • 历史总积分:92
  • 注册:2002年12月14日
发表于:2003-08-05 10:26:00
楼主
我在用9812遇到如下问题,请大家帮忙。 1:4通道同时采集16000个数据,大约要用40ms,能不能缩短一点25ms 左右。 2:我将数据处理和显示存盘共用了大约250ms左右,请问如何才能提高到75ms。 3:由于我得算法太复杂用时太多,我用了四个线程来处理数据。但效果不明现,请问有没有别的好办法。



李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2003-06-07 10:39:00
1楼
1:如果用20M的采样速率,应该不用40ms。不过这时的采样点要小于8000,否则会有数据丢失。 2.如果数据量不大,可以先存内存。

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 9回
  • 年度积分:0
  • 历史总积分:92
  • 注册:2002年12月14日
发表于:2003-06-07 10:52:00
2楼
问题是我的系统必须要求每个通道16000个数据。我得系统速度还不能太快,应为要在出发信号的一个前半周期采集每个通道16000个数据,后周期处理显示存盘。我得触发信号大概为10hz左右,这样需要100ms 内完成真些工作。请教有什么办法? 而且存在内存中,还是要放到硬盘上的。

suntide

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 8回
  • 年度积分:0
  • 历史总积分:291
  • 注册:2003年8月04日
发表于:2003-08-04 17:56:00
3楼
1,这与采样速率有关,不必说。 2,改善算法咯。不过估计没有多少改善的余地。 3,多线程未必能提高你的速度。因为计算机执行一条语句,总是要花费时间的。假设你你连续执行一系列的语句花费10ms时间,那么用三个或者四个多线程并不能把分开执行这个语句的时间缩短到10ms以内。多线程往往只是用于界面处理与数据操作之间,以改善所谓的“当处理数据时界面无响应”的问题。

国安

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 242回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2002年4月15日
发表于:2003-08-05 10:26:00
4楼
suntide的答很专业。 1. 你的采样频率是多少?4ch应该可以用5MS/s每通道,即使用1MS/s,每通道采集16000数据,也只要16ms。你等采样完成是用同步还是异步? 2. 显示很花时间,要想办法改善,比如用DirectX什么的。存盘也很慢。版主说的对,如果数据不多可以放内存。一定要存的话,可以考虑用SCSI盘或利用硬盘的缓存。 3. 多线程在这个情况下帮不到你。还是要简化算法。另外Intel开放了一个专门的数学运算库,你可以看一下。

热门招聘
相关主题

官方公众号

智造工程师