Двойная задержка выполнения скрипта

121
22 апреля 2022, 12:20

Есть такой скрипт, на ардуино (крутит шаговый двигатель). Подскажите как сделать так чтобы этот скрипт выполнялся 10 секунд, потом была задержка на 40 секунд и так циклично?

int in1 = 2;
int in2 = 3;
int in3 = 4;
int in4 = 5;
const int dl = 5;
void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}
void loop() {
  digitalWrite(in1, LOW); //A/
  digitalWrite(in2, LOW); //B/
  digitalWrite(in3, HIGH); //A
  digitalWrite(in4, HIGH); //B
  delay(dl);
  digitalWrite(in1, LOW); //A/
  digitalWrite(in2, LOW); //B/
  digitalWrite(in3, LOW); //A
  digitalWrite(in4, HIGH); //B
  delay(dl);
  digitalWrite(in1, LOW); //A/
  digitalWrite(in2, HIGH); //B/
  digitalWrite(in3, HIGH); //A
  digitalWrite(in4, LOW); //B
  delay(dl);
  digitalWrite(in1, LOW); //A/
  digitalWrite(in2, HIGH); //B/
  digitalWrite(in3, LOW); //A
  digitalWrite(in4, LOW); //B
  delay(dl);
  digitalWrite(in1, LOW); //A/
  digitalWrite(in2, HIGH); //B/
  digitalWrite(in3, LOW); //A
  digitalWrite(in4, LOW); //B
  delay(dl);
  digitalWrite(in1, HIGH); //A/
  digitalWrite(in2, LOW); //B/
  digitalWrite(in3, LOW); //A
  digitalWrite(in4, LOW); //B
  delay(dl);
  digitalWrite(in1, HIGH); //A/
  digitalWrite(in2, LOW); //B/
  digitalWrite(in3, LOW); //A
  digitalWrite(in4, HIGH); //B
  delay(dl); 
  
  digitalWrite(in1, LOW); //A/
  digitalWrite(in2, LOW); //B/
  digitalWrite(in3, LOW); //A
  digitalWrite(in4, HIGH); //B
  delay(dl);
}
Answer 1

Черновик:

#include <time.h>
#include <unistd.h>
void RunScript() {
{
    time_t t1, t2;
    t1 = time(NULL);
    while (1) {
        loop()
        t2 = time(NULL);
        if (t2-t1 > 10) break;
    }
}
. . .
int main(int argc, char *argv[]) {
   while (1) {
      RunScript()
      sleep(40)
    }
}

Не тестировал, так что - могут быть опечатки. Но, я думаю, идея понятна.

READ ALSO
удалить символы из определенного интервала строки и вставки на их место другую строку С++

удалить символы из определенного интервала строки и вставки на их место другую строку С++

помогите с задачей, очень прошу! готов и очень хочу разбираться

206
Проблема с boolean-ом в C++

Проблема с boolean-ом в C++

Почему этот boolean может запуститься без SDL_Event event, когда должен только с SDL_Event event?

127
c++ программирование

c++ программирование

С двумерным массивом, состоящим из n вещественных элементов, выполнить следующее: преобразовать массив, удалив из него одинаковые элементыОсвободившиеся...

131