C语言中想要一个循环程序在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);
}
}
就是这个程序!谢谢了!

第1个回答  2011-05-24
2秒的应该要用定时器好一点吧,while(!两秒标志)这样就可以了(两秒定时一到,则置位两秒标志位),如果真的对实时性要求非常高的话,就是说两秒一到,不管程序执行到哪里,都应该结束这个循环,那就要用到任务的调度了,这个比较麻烦,因为会涉及到操作系统了,uC/OS可以实现这个。至于你说的让循环程序执行一次就结束的,既然是只有一次,那就不叫循环了对吧,不要循环,直接顺序执行下来就是一次了嘛
第2个回答  2011-05-24
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
void Break(int signo)
{
printf("TIMEOUT\n");
exit(1);
}
int main(void)
{
signal(SIGALRM, Break);
alarm(5);
while(1);
return 0;
}本回答被提问者采纳