Java并行口连续数据采集

Java并行口连续数据采集,java,parallel-port,Java,Parallel Port,对于我的一个与神经传导研究相关的项目,我需要在Windows XP中从并行打印机端口连续采集数据。模拟数据由模拟-数字转换器处理,然后提供给并行打印机端口。为了熟悉数据采集过程,我尝试从连接到ADC的频率信号发生器中采集数据,该发生器的频率设置为50 Hz。到目前为止,我已经能够使用Java从PC读取数据,但我担心我在某个地方出错了 获取的数据的问题是,例如,如果我获取前500个数据并绘制它,那么我会得到一个波形,但它不够平滑,这表明数据丢失或以某种方式分散。我给出了一个500个数据的示例数据绘

对于我的一个与神经传导研究相关的项目,我需要在Windows XP中从并行打印机端口连续采集数据。模拟数据由模拟-数字转换器处理,然后提供给并行打印机端口。为了熟悉数据采集过程,我尝试从连接到ADC的频率信号发生器中采集数据,该发生器的频率设置为50 Hz。到目前为止,我已经能够使用Java从PC读取数据,但我担心我在某个地方出错了

获取的数据的问题是,例如,如果我获取前500个数据并绘制它,那么我会得到一个波形,但它不够平滑,这表明数据丢失或以某种方式分散。我给出了一个500个数据的示例数据绘图的屏幕截图。希望有人能给我一些提示,我犯了错误,并告诉我一些准则,以解决它。提前谢谢

示例代码:

for (int i=0; i<500;i++) { 
      lpt.output(0x37a,32); //configures DR for data input by making C5bit of CR high
      lpt.output(0x37a,33); //starts data acquisition process by making C0 bit of CR high
      for(int j=0;j<1000;j++){     } //dummy loop to provide some time delay for ADC output to Stabilize
      arr[i] = lpt.input(0x378); // reading and storing the data in an array
      for(int k=0;k<10000;k++){} // dummy delay loop to provide sample data interval
}

用于(int i=0;i请展示一些相关代码。伪循环不是添加延迟的好方法。这就是原因。编译器可能已经删除了您的伪循环,因为您没有在其中执行任何操作。感谢大家的友好评论。代码提供了我从并行端口连续获取数据的方法。有没有更好的方法应用延迟除了sleep(),因为它不支持小于一毫秒的延迟。如果我想应用微秒级的延迟,该怎么办?再次感谢。hellow all,我已经尝试更改延迟时间,但没有多大帮助。仍在寻找问题及其解决方案。