timer1.interval=5,timer3.interval=500
用Timer来决定时间很不可靠,你的设置值虽为timer3.interval/timer1.interval=100,但在执行时一般不会达到你的要求!建议在timer3的事件中判断timer1事件中记录的数据n来做为条件。

解决方案 »

  1.   

    “建议在timer3的事件中判断timer1事件中记录的数据n来做为条件。”请楼上两位高手明示!
      

  2.   

    用一个TIMER就可以了,在TIMER1时间中判断,当数据采集了100次时直接调用MaxValue()、MinValue()或者用类建立一个事件,当数据采集了100次时就触发事件,在事件中调用MaxValue()、MinValue()。
      

  3.   

    用VB等高级语言编写数据采集程序时,一定要注意程序的执行效率,
    否则,当数据采集的频率较高时,可能会丢失数据。关于执行效率,我
    提几点优化建议。
        1.ReDim比较费时,应尽量减少其执行次数。
          既然aa的元素个数由Timer1和Timer3的定时间隔决定,
          ReDim aa(m)就应该放在Timer的定时间隔设定处执行,
          不要放在Timer3里,以减少不必要的动作。 
        2.aa()的最大值和最小值的计算分别用了两个函数,可改用
          一个sub来实现,减少重复的循环。当数组较大时,尤其可观。
        3.多次用到了LBound和UBound来得到aa的上下界,实际上,在
          ReDim aa()后就是知道的了,最好定义两个Form级的变量。    另外,Timer1里计数器n的使用有问题,`尽管定义了static型,
    但每次执行时,其值都是固定的,也不妨用一个Form级的变量。
           n = LBound(aa)      '0
           ....
           n = n + 1           '1