如何在C中的for循环中休息计时器?[关闭]

fzwojiic  于 2024-01-06  发布在  其他
关注(0)|答案(1)|浏览(89)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

9天前关闭
Improve this question
我有一个代码, Flink 两个发光二极管(数)秒,然后保持空闲(数)秒。数字和Mumber都是由用户输入的。代码运行良好的第一个循环,但它不切换回开始。

``

#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;
}

```
字符串
我尝试了其他gotto试图强制for循环到开头,但它没有工作。
dxxyhpgq

dxxyhpgq1#

这看起来很像C语言的入门练习,这里有一些代码可以回答这个问题:
(我让你实现get_time()函数,因为它超出了你的问题范围)
(your错误来自于对time()函数的缺乏了解,我会让你阅读你个人文化的细节:man 2 time
我不知道adera1...()函数的实现细节,所以我将创建仅用于打开或关闭LED的虚构函数。

#include <unistd.h>

int get_time(void);
void switch_on(int id_led);
void switch_off(int id_led);

int main(void) {
    int t1 = get_time();
    int t2 = get_time();

    while (1) {
        switch_on(0);
        switch_on(1);
        sleep(t1);
        switch_off(0);
        switch_off(1);
        sleep(t2);
    }
    return (0);
}

字符串

相关问题