if(milis) and for(i++)
- Войдите на сайт для отправки комментариев
Сб, 23/11/2019 - 22:48
unsigned long t;
void setup() {
Serial.begin(9600);
}
void loop()
{
if (millis() - t > 1000)
for (int i = 1; i < 7; i++)
{
Serial.println(i);
t = millis();
}
}
Доброго времени суток. Столкнулся с такой проблемой, надо чтоб он выводил, числа до 7, с перерывом в одну секунду, но он выводит числа до 7, и начинает заново. Как решить ума не прилажу, подскажите пожалуйста, спасибо заранее.
процедура loop - это цикл, когда она доходит до конца - ее выполнение начинается сначала
Варианта решения проблемы две - вынести ваш код из loop например в setup (он выполняется один раз) или предусмотреть в программе переменную, которая запоминалы бы, что цикл for уже исполнен и второй раз его запускать не надо
надо чтоб он выводил, числа до 7, с перерывом в одну секунду
а потом что? Стоп - или повторить или что еще ?
Но в коде-то написано выводить все семь подряд без всякого интервала.
unsigned long t; int i=1; void setup() { Serial.begin(9600); } void loop() { if (millis() - t > 1000&&i<=7) { Serial.println(i); i++ t = millis(); } }Значит нужен не цикл for, а просто по условиям временным выполнять: Serial.println(i); i++; t=millis();
Примерно так