C语言中想要一个while循环程序在2秒内结束并向下继续运行,用哪个函数,怎么用?或者怎么停止循环?

BYTE sendBuffer[] = "Hello";
while(1)
{
GLED = LED_OFF;
YLED = LED_ON;
res = radioSend(sendBuffer, sizeof(sendBuffer), remoteAddr, DO_NOT_ACK );
halWait(200);
YLED = LED_OFF;
halWait(200);
if(res == TRUE)
{
GLED = LED_ON;
halWait(200);
}
else
{
GLED = LED_OFF;
halWait(200);
}
}
就是这个程序!谢谢了!

你可以这样,定义一个变量,比如说time=0,在循环里面每次循环time++,循环的判断条件就是while(time<200)就行了
这里有延时函数的介绍
/* 函数类型: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) ;
}
可以函数里面设定每一秒执行一次
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-24
这个是单片机程序?
建议用定时器中断来做
在进入while循环的时候开启定时器定时,当到达2秒的时候将定义的一个flag设置为true,当while判断到这个标志的时候为true的时候break即可追问

请问该怎么编程呢,我觉得你这个不错!

追答

定义一个全局的flag,开始设为false
初始化定时器
编写定时器中断函数:
。。。
当时间间隔为2s时flag = true
。。。
编写while语句块
{
。。。
。。。
if(flag)
break;
}

本回答被提问者采纳
第2个回答  2011-05-24
使用break;
===================
unsigned int breaktime = GetTickcount() + 2000;//GetTickcount 取得当前毫秒数
while( GetTickcount() <breaktime)
{
// running...........
}
///////////
第3个回答  2011-05-24
你这问题问太多了!
第4个回答  2011-05-24
ctrl+c