我是靠谱客的博主 大意小天鹅,最近开发中收集的这篇文章主要介绍MATLAB中如何用循环实现精确延时,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

<span style="font-size: 12px; font-family: 'Source Code Pro', monospace; white-space: pre-wrap; background-color: rgb(255, 255, 255);"><span style="font-size:18px">    前面在用MATLAB控制硬件的时候,在每次采集的过程中需要等一段固定的时间再采集信号。所以这里就会需要用到延时函数来精确延时,首先想到的就是函数pause(time),但运行时发现错误,后来弄清楚了,pause的作用是暂停,而不是延时。在运行pause时,程序各个系统都暂停了,也要把我的采集硬件部分暂停,这就会产生冲突。</span></span><span style="font-size: 12px; font-family: 'Source Code Pro', monospace; white-space: pre-wrap; background-color: rgb(255, 255, 255);"><span style="font-size:18px">然后Google后,发现还有一个timer函数,查了help之后,发现这是一个定时触发器,每隔一定的时间,就会触发制定函数,也不符合我的要求。</span></span>

再想到既然查不到现成的函数,那就只能自己写一个循环函数来实现定时了。但如果只是单纯的指定循环多少次的话,这不能起到精确定时的作用,因为同样的代码,在不同的电脑状态和不同的配置的机器上跑出来的时间是不一样的,所以模糊大概定个时勉强还行,如果说精确定时到0.1秒什么的,肯定是不行的。

很明显这个思路里差一个指示时间的代码。联想到平时计算程序耗时,经常会用到tic,toc,其中tic表示开始时间,toc表示结束时间。那可不可以用他们来实现?随后我又仔细查了下MATLAB的help中tic和toc的用法,于是有了以下精确定时的程序:

tic;
for t = 0.001:0.001:time
    while toc < t
    end
end


其中,time表示定时时间,单位为s。语句t=0.001:0.001:time中的步长表示计时的精度,此处为0.001ms。经过运行,程序达到了精确计时的预期效果。



最后

以上就是大意小天鹅为你收集整理的MATLAB中如何用循环实现精确延时的全部内容,希望文章能够帮你解决MATLAB中如何用循环实现精确延时所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部