首先对各位的回复表示感谢!再问yoyo1101:这样编程行吗? 点击:700 | 回复:4



IxinFY_1111

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 6回
  • 年度积分:0
  • 历史总积分:42
  • 注册:2004年4月08日
发表于:2004-04-13 12:16:00
楼主
我打算一毫秒采集一次数据,在步进电机旋转一周的同时采集480个点,怎么样实现均匀采集?就是说电机旋转时,每隔0.75度采集一次。 ...... deviceopen(); settimer(1,1); int i=480; for (i=0;i<480;i++){ ontimer(); } killtimer(1); deviceclose(); dataprocess(); ...... 在ontimer()函数里实现数据采集及存盘。比如同时采集六个通道的数据,数据存到FVOLTAGE[ ]数组里, CFILE file; file.open(); file.write(......,FROLATGE[I]); file.close(); 请说得详细点,谢谢!



yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-04-13 15:53:00
1楼
可以在循环之外,也就是采集完成之后, FILE *svfile; ........... //采集数据 while ( i < 512 ) { if ((err=WaitForSingleObject(hIntEvent, 1000))== WAIT_OBJECT_0) { W_8113_AD_Aquire(0, &temp); data1[i] = temp; } } //存文件 svfile = fopen("8113d", "wb"); numwritten = fwrite( data1, sizeof(int), 512, svfile); fclose(svfile); 其中"8113d"为保存文件的文件名, data1为存储采集文件的数组,512为数组中的数据个数,具体用法可以查阅MSDN。

IxinFY_1111

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 6回
  • 年度积分:0
  • 历史总积分:42
  • 注册:2004年4月08日
发表于:2004-04-14 09:53:00
2楼
非常感谢!可是怎么实现均匀采集呢?就是电机旋转一周,采集的点数均匀的分布在轴的周围呢?还有我用svfile = fopen("d:\\sensor", "w+a+t");但是当打开sensor文件时出现乱码,不知道怎么回事.另外,我想用CFILE定义,用MFC里的保存读取文件的方法来实现.是不是需要先分配缓冲区呀?

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-04-16 16:20:00
3楼
可以通过硬件定时(计数器卡)或者使用windows的多媒体时钟来精确定时,控制采样时间间隔,使采样点均匀分布;至于用CFILE定义,用MFC里的保存读取文件的方法我不太熟悉,还请各位高手指教。

海东青

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:67
  • 注册:2002年9月25日
发表于:2004-04-29 17:29:00
4楼
均匀采集取决于采样周期

热门招聘
相关主题

官方公众号

智造工程师