多通道采集问题紧急求教 点击:796 | 回复:5



肖风

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 14回
  • 年度积分:0
  • 历史总积分:38
  • 注册:2004年3月10日
发表于:2004-05-18 09:48:00
楼主
板卡:PCI-9118。采集三个通道的数据(返回数组为ScaledData),用软件实现三组数据的分离,相关程序如下: …… ReDim data1(Pci91181.NumOfScan) ReDim data2(Pci91181.NumOfScan) ReDim data3(Pci91181.NumOfScan) For j = 0 To Pci91181.NumOfScan data1(j) = ScaledData(i) data2(j) = ScaledData(i + 1) data3(j) = ScaledData(i + 2) Next j …… Write #intfilenum, data3(j) …… 发现保存后发现(数组data3)2000个点的数据完全一样,而实际上根据采样频率以及输入的正弦信号,不应该是这种情况的。 请高手赐教,多谢。



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-05-18 12:08:00
1楼
Var `i` is always the same in the loop?

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-05-19 12:05:00
2楼
循环有问题: j=0 For i = 0 To Pci91181.NumOfScan    data1(j) = ScaledData(i)    data2(j) = ScaledData(i + 1)    data3(j) = ScaledData(i + 2) j=j+1    Next i=i+3 可能语法有问题,但意思应该是每次循环,循环变量加3

肖风

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 14回
  • 年度积分:0
  • 历史总积分:38
  • 注册:2004年3月10日
发表于:2004-05-19 13:42:00
3楼
程序已经修改成: …… j = 0 For k = 0 To Pci91181.NumOfScan-2 Step 3 data1(j) = ScaledData(k) data2(j) = ScaledData(k + 1) data3(j) = ScaledData(k + 2) j = j + 1 Next k …… 发现前面将近1000个数据正常,当时后面数百个全是0(pci91181.numofscan已经赋值2000) 懵了,呵呵

肖风

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 14回
  • 年度积分:0
  • 历史总积分:38
  • 注册:2004年3月10日
发表于:2004-05-19 16:35:00
4楼
请问这几行代码有什么作用?谢谢。 For i = 0 To 5 Frame1(i).Enabled = True Next i If Pci91181.DoubleBufferMode = False Then For i = 0 To 2 Frame2(i).Enabled = True Next i End If

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-05-20 14:10:00
5楼
For i = 0 To 5    Frame1(i).Enabled = True Next i 使能Frame1中的选项框,比如输入范围,采样速率等等; If Pci91181.DoubleBufferMode = False Then   For i = 0 To 2    Frame2(i).Enabled = True   Next i End If 在不使用双缓冲模式时,使能Frame2中的选项框,比如触发模式、触发极性等。

热门招聘
相关主题

官方公众号

智造工程师