LABVIEW供给了几种定时器(包含DELAY),如下图所示
首要看看Tick Count 节点的协助阐明:
回来毫秒定时器的值.
基准参阅时刻(0 毫秒)未定义,也便是说,不能把回来的毫秒数直接转换成实践国际的时刻和日期.有必要留意当你运用这个函数进行比较的时分,毫秒定时器到达2^32-1后反转成0.
基准参阅时刻未定义,说法比较含糊,莫非会是个随机数,那明显不或许,假如是随机数,那两次调用TICK COUNT获得差值就不或许表明通过的毫秒数.无论如何,有必要有个时刻的起点.
API函数中也有一个相似的函数:GetTickCount,该函数回来计算机发动以来通过的毫秒数.在9X中,它读取的是BIOS中保存的体系时钟的滴答数,前期PC的ROM初始化Intel8259定时器芯片来发生硬件中止08H。这个中止有时称为”定时器滴答”中止。中止08H每隔54。925毫秒发生一次,或大约每秒18.2次。BIOS运用中止08H更新存于BIOS数据区的”时刻”值.这便是长说的55MS的由来.关于NT操作体系,惯例的说法是能准确到10MS,也便是说精度在1MS时是不准确的.
通过实践测验,LABVIEW的T%&&&&&%K COUNT的回来值和API的回来值是共同的,也便是计算机发动以来通过的毫秒数.
毫秒数到达2^32-1后反转成0,可见它的数值方式是U32,最大值是2^32-1,大约适当于49.7天.关于一个接连运转的计算机,用这个节点进行比较的时分,在接连运转49.7天后,该值主动康复到零,假如在这个时刻进行比较,或许会呈现过错的成果.
wait(ms)节点协助文件中的解说是这样的.
等候指定的毫秒数并回来毫秒定时器的值(上面说到的计算机发动以来的毫秒数).假如WAIT (MS)衔接0会逼迫当时线程抛弃操控权.
WAIT 0MS是一个适当重要的特色,适当于VB 的DOEVENTS,CVI中的PROCESSSYTEMEVENTS,实践是偿还操控权给操作体系,来处理行列中的其他音讯,假如没有音讯需求处理,体系立刻把操控权交给这个线程,持续运转.
这里有两种状况,假如体系音讯行列中无需求处理的音讯,当即回来,假如体系音讯行列中有音讯需求处理,并且是一个耗时操作,无法意料LV线程何时再次获得操控权.咱们比较LV是否加WAIT 0MS的速度.
试验过程中未履行其它任何操作,避免了处理其他音讯形成的影响.两者之间,距离是惊人的.这也表现了LABVIEW的一个长处,关于一个倾向于硬件操控的编程软件,它有着极强的使命抢先才能.
在一个循环里屡次并行履行WAIT,是累加时刻,仍是按最长的履行那,实践上是异步的仍是同步的问题.咱们做一下试验.
可见,这三个WAIT是一起履行的.
因为WAIT是根据线程的,一个循环里的WAIT不会影响一起运转的其它线程的运转.
看看WAIT UNTIL NEXT MS MULTIPULE(等候下一个毫秒的整数倍).
一向比及毫秒定时器变成指定时刻的整数倍.能够用于在一个循环中调理循环的履行速率.可是第一次的循环周期或许比较短.能够直接衔接0到这个节点,逼迫当时线程抛弃操控权,偿还给CPU.