labview中怎么实现微秒延时

labview中怎么实现微秒延时,第1张

labview中怎么实现微秒延时

新建一个VI项目。

2

/6

如图所示,在面板上添加垂直滚动条和开关按钮,垂直滚动条用于显示随机数据,开关按钮用于控制VI的开关。

3

/6

如图所示,为后台程序框架。把while循环的循环变量输出给显示控件,把开关和关闭变量连接。

4

/6

如图所示,观看运行效果,看到滚动条运行速度非常快。

5

/6

如图所示,在程序框图里面添加延时单元,设计延时值为1s。

6

/6

如图所示,运行程序看到此时的变化速度变慢,改变延时单元设置的延时值,观看运行效果,体会延时单元的使用。

一、获取毫秒数的代码:

(1)System.currentTimeMillis() 这种方式速度最快。

(2)Calendar.getInstance().getTimeInMillis() 这种方式速度最慢。

二、获取微秒数的代码:

微秒使用System.nanoTime()方法:如果Java程序需要高精度的计时,如1毫秒或者更小,使用System.nanoTime()方法,可以满足需求。

扩展资料:

获取微秒函数System.nanoTime() 的隐患:

System.currentTimeMillis() 起始时间是基于 1970.1.1 0:00:00 这个确定的时间的,而System.nanoTime()是基于cpu核心的时钟周期来计时,它的开始时间是不确定的。

但是在多核处理器上,由于每个核心的开始时间不确定,那么

“long start = System.nanoTime()String ip = Utilities.getIpByUrl(url)long cost = System.nanoTime() - start  ”

这段代码有可能会运行在两个不同的cpu核心上,从而导致得到的结果完全不符逻辑。

_delay_us:

DJNZR7,$

RET

说明:

本8051的子程序可以一定程度由调用函数定制延时时间,定时值由调用程序事先保存在R7中。本程序也可以C调用,但需要在函数所在的汇编文件中写公开声明: PUBLIC _delay_us 函数原型是:void delay_us(unsigned char T_count)

如果使用的是标准8051内核,DJNZR7,$执行一条指令消耗24时钟周期,RET指令也一样。加上调用耗时,一般是由第一条指令 MOV R7,#T_count 或MOV R7,A 或MOV R7 direct 和第二条指令 ACALL/LCALL_delay_us组成。最长48个时钟周期,最短36时钟周期。

然后读者可根据系统时钟频率计算出12us和20us需要给R7的赋值即可完成。

因为现在的派生8051型号众多,不同厂家的8051核执行一条指令的时钟数已大不相同,读者需要根据自己所用的单片机生产厂家的规格书来确定延时值了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11543682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存