Цикл без задержки (расширенный)

STest111
Offline
Зарегистрирован: 04.09.2019

Здравствуйте. Нужно записывать в два элемента массива время (millis) и значение с датчика с задержкой в 1 секунду (без delay), но никак не могу получить желаемый результат. Подскажите что я не так делаю и возможно ли осуществить задуманное... Спасибо.

int v[5] = {2, 2, 2, 2, 2};
unsigned long t[5] = {1, 1, 1, 1, 1};
unsigned long LastTime;

byte cou = 0;

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.print(" ");
  Serial.print(cou);

  if (cou < 5) {
    if (((millis() - LastTime) > 1000)) {
      LastTime = millis();
      v[cou] = random(3, 9);
      t[cou] = millis();
      cou ++;
      Serial.print(" ");
      Serial.println(cou);
    }
  }

  if (cou = 5) {
    for (int i = 0; i < 5; i++) {
      Serial.print(" ");
      Serial.print(v[i]);
      Serial.print("/");
      Serial.print(t[i]);
    }
  }

  Serial.println("");
  delay (5000);
}

 

b707
Offline
Зарегистрирован: 26.05.2017

расскажите, как этот код работает и чем это отличается от того, что вы планировали

STest111
Offline
Зарегистрирован: 04.09.2019

Сейчас выдает такое 

 5 2/1 2/1 2/1 2/1 2/1
 5 2/1 2/1 2/1 2/1 2/1
 5 2/1 2/1 2/1 2/1 2/1
 5 2/1 2/1 2/1 2/1 2/1
 5 2/1 2/1 2/1 2/1 2/1
а я хочу чтобы значения менялись с задержкой в секунду на что то такое
 5 4/1000 6/2000 6/3000 7/4000 5/5000
 5 3/1000 5/2000 4/3000 6/4000 3/5000
 5 6/1000 5/2000 7/3000 7/4000 6/5000

 

 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Грабли стояли в 26 стоке = - ==

STest111
Offline
Зарегистрирован: 04.09.2019

Пока cou меньше 5 значения  cou элемента массива изменяется до того времени пока  cou не станет равным 5. потов печатается их содержание и цикл повторяется

b707
Offline
Зарегистрирован: 26.05.2017

STest111 изучите разницу между "=" и "=="

STest111
Offline
Зарегистрирован: 04.09.2019

блин точно, день угробил на поиск решение а тут такое... спасибо!

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

:-D) Этим граблям 100500 лет !!!!

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Какой смысл "заморочек" с millis, если в 36 строке:

delay (5000);

???

Green
Offline
Зарегистрирован: 01.10.2015

Komandir пишет:

:-D) Этим граблям 100500 лет !!!!


Особо боязливые перестраховщики предпочитают писать:)   if (5 == cou) {

SLKH
Offline
Зарегистрирован: 17.08.2015

Komandir пишет:

:-D) Этим граблям 100500 лет !!!!

этой подлянке.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Komandir пишет:

:-D) Этим граблям 100500 лет !!!!

Но работают! Умели же предки делать!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Расслабились, Вы тут. Вот в JavaScript в дополнение к = и ==, ещё и === есть :-)

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Оно же есть и в PHP. !))))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

Расслабились, Вы тут. Вот в JavaScript в дополнение к = и ==, ещё и === есть :-)

это чтоб видеть грудь каждого четвёртого человека?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, это, типа "ещё равнее".

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

Ну, это, типа "ещё равнее".

век живи век учись в этом придуманном мире )))