这个延时的功能实现起来不难,C语言里面实现实现的方式很多,这里简单讲几种应用比较普遍的。
1、延时
在一般的流程中,上一条指令执行完毕就按顺序执行下一条。在这里就体现为控制台的两条输出语句同时输出了,这里自然有个时间上的间隔,但以眼睛来看就是如此。
那么,依旧是这个原理如何实现间隔10秒再输出下一条语句?
大家可以在两条语句之间加入空指令,比如nop;然后粗略得到100次nop指令执行的时间,以此为基础使用for循环或者do while来控制nop执行的次数。这样就能达到题主的目的。
for(int i=0;i++;i<100)
{nop;}
2、定时器
定时器的应用会出现一个中断的概念,也可以理解为回调。当大家设置定时的长短,定义中断函数后,就可以开启定时器。
这个计时和你现在main函数中指令运行是独立的。只是到特定时间,产生一个中断,然后提示你时间到了。
大家就可以通过判断相关的时间标志位来确定是否到达10秒的延时。
3、RTOS
说RTOS只是举个例子,在widows平台下也是一样的道理。
大家需要延时的时候,只需要按照第一种方式调用一个延时函数,如delay_ms(x)。
但是实际的执行效果却有点像第二种方式,CPU继续执行其它的线程。这里是基于操作系统了,要说清楚又是另一个问题了。
建议题主了解一下调度。
最后,感谢大家的阅读。