Labwindows中异步定时器概述
(2012-10-13 12:16:29)
标签:
异步定时器定时器回调函数linux系统labwindows |
分类: 编程相关 |
toolslib\toolbox\asynctmr.fp
(作者博客 http://blog.sina.com.cn/u/2267289007
在不同操作系统上的定时器的差异
可以在Windows和实时(RT)操作系统中使用异步定时器。定时器的行为类似,但又不相同。在Windows系统,使用Windows多媒体定时器函数实现异步定时器。在RT系统,异步定时器使用LabVIEW微秒计时引擎。在两个系统上,LabWindows/ CVI为每个定时器滴答产生一个定时器事件,甚至在定时器运行慢时也是可以的。
你使用的最小时间间隔值依赖于运行异步定时器的系统。如果时间间隔比您的系统所支持的定时器的分辨率小,LabWindows / CVI将使用系统所支持的分辨率间隔。在Windows中,最小间隔值通常为10 ms。在RT系统中,最小时间间隔为1微秒。可以调用GetAsyncTimerResolution 确定系统的分辨率。
运行异步定时器的系统类型,也决定了执行定时器回调函数的线程类型。在Windows上,所有的异步回调函数都共享一个由操作系统管理的公共线程。如果你想让你的程序并行执行多线程,NI建议您使用LabWindows / CVI Utility Library中的线程池函数,而不是异步定时器函数。在RT系统中,每一个定时器运行在其自己的专用线程中。
定时器回调不能相互中断,一个定时器线程必须退出其自己的回调之后,另一个定时器线程才可以调用它自己的回调。
在Windows中,所有悬而未决的异步回调返回之前,create或discard一个异步定时器将无法完成,直到异步回调返回。在RT系统中,create一个异步定时器是可以完成的,不关心回调是否返回。Discard一个异步定时器,在此定时器的回调没有返回前会被阻塞。
注意:在Linux系统,您最多可以创建256个异步定时器。
----------------------------------完----------------------------------------------

加载中…