Нужна помощь по циклу while
- Войдите на сайт для отправки комментариев
Чт, 29/10/2015 - 14:02
Есть вот такой код простой код
unsigned long time = 0; void setup() { Serial.begin(9600); } void loop() { while (millis() < time); time += 1000; Serial.println(time); }
Изменяя значение константы (сейчас стоит 1000) , можно регулировать скорость выполнения программы. Как это происходит. Видимо есть какие-то тонкости которых я пока не знаю.
Нет здесь никаких тонкостей - всё очень толсто и очевидно. Почитайте что такое while и что он делает - http://arduino.ru/Reference/While
Тонкость в том, что вы упустили фигурные скобки в функции while.
Вот как должно быть:
Так понятнее? Эти скобки необязательные, если цикл while нужен только для того, чтобы контроллер "тупо тупил и бил баклуши" некоторое время. Т.е. в данном случае это аналог delay(1000), но в котором можно во время паузы что-то делать.
Ничего он не упустил. Там крутится пустой цикл - полная имитация delay(1000) без возможности что-то делать еще.
так и я про то же. Просто в изначально приведенном синтаксисе новичкам не понятно почему не сразу идет переход с 11 на 13 строку.
А возможность "что-то делать еще" как раз будет, если использовать скобки.