2秒的应该要用定时器好一点吧,while(!两秒标志)这样就可以了(两秒定时一到,则置位两秒标志位),如果真的对实时性要求非常高的话,就是说两秒一到,不管程序执行到哪里,都应该结束这个循环,那就要用到任务的调度了,这个比较麻烦,因为会涉及到操作系统了,uC/OS可以实现这个。至于你说的让循环程序执行一次就结束的,既然是只有一次,那就不叫循环了对吧,不要循环,直接顺序执行下来就是一次了嘛
企业建站必须是能够以充分展现企业形象为主要目的,是企业文化与产品对外扩展宣传的重要窗口,一个合格的网站不仅仅能为公司带来巨大的互联网上的收集和信息发布平台,成都创新互联面向各种领域:成都木制凉亭等网站设计、成都全网营销解决方案、网站设计等建站排名服务。
你可以这样,定义一个变量,比如说time=0,在循环里面每次循环time++,循环的判断条件就是while(time200)就行了
这里有延时函数的介绍
/* 函数类型:void (无返回值)
函数接口:delay(int)
例如在程序中取得n秒的延时,只要在代码中加入 delay(n) 即可。注:n 为 int 类型。
*/
/* 调用时请务必#include time.h 头文件 */
函数代码如下:
void delay(int seconds)
{
clock_t start = clock();
clock_t lay = (clock_t)seconds * CLOCKS_PER_SEC;
while ((clock()-start) lay) ;
}
可以函数里面设定每一秒执行一次
你这个程序是单片机的C?
用中断做一个定时器。在中断服务程序里,累加一个全局变量,比如SoftTimerCounter。
将你的主循环while(1)改为:while(SoftTimerCounter=设定时间)
设定时间要根据定时中断的时间间隔和你要的时长来计算一下,也就是定时中断的次数。
最好在可以跳出的这个while循环后边再加一个while(1)空循环。
1.for语句的一般格式
for([变量赋初值];[循环继续条件];[循环变量增值])
{
循环体语句组;}
2.for语句的执行过程
执行过程如图5-1所示。
(1)求解“变量赋初值”表达式。
(2)求解“循环继续条件”表达式。如果其值非0,执行(3);否则,转至(4)。
(3)执行循环体语句组,并求解“循环变量增值”表达式,然后转向(2)。
(4)执行for语句的下一条语句。
3.说明
(1)“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。
(2)当循环体语句组仅由一条语句构成时,可以不使用复合语句形式,如上例所示。
(3)“循环变量赋初值”表达式,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)。
例如,for(sum=0;i=100;i++)
sum
+=
i;
for(sum=0,i=1;i=100;i++)
sum
+=
i;
(4)“循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。