我有一个代码,可以使两个 LED 闪烁(数)秒,然后保持空闲(数)秒。 Number 和 Number 均由用户输入。代码在第一个循环中运行良好,但它不会切换回开头..
``
```
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
int main ()
{
time_t start_time = time(NULL);
adera_rest:
for (;;)
{
time_t now = time(NULL);
time_t diff = now - start_time;
if((diff) <= number)
{
adera1_first_led(2);
adera1_second_led(2);
}
if((diff) >=number && (diff)<= number+mumber)
{
adera1_two_led_off(2);
}
else
{
printf("why for loop does not go to the beginning\n");
//goto adera_rest;
}
}
return 0;
}
````
我尝试过 else gotto 尝试强制 for 循环转到开头,但没有成功。
这看起来很像 C 语言的入门练习, 这是一些可能会回答这个问题的代码:
(我会让你实现
get_time()
函数,因为它超出了你的问题范围)
(您的错误来自于对
time()
功能缺乏了解,我会让您阅读适合您个人文化的详细信息:man 2 time
)
我不知道
adera1...()
函数的实现细节,所以我将创建虚构的函数,仅用于打开或关闭LED。
#include <unistd.h>
int get_time(void);
void witch_on(int id_led);
void witch_off(int id_led);
int main(void) {
int t1 = get_time_1();
int t2 = get_time_2();
while (1) {
witch_on(0);
witch_on(1);
sleep(t1);
witch_off(0);
witch_off(1);
sleep(t2);
}
return (0);
}