Проблема в 4-х строках
- Войдите на сайт для отправки комментариев
Вс, 19/04/2015 - 13:30
Здравствуйте! Столкнулся с непонятной проблемой. Или меня заклинило или... В общем, помогите пожалуйста разобраться, почему переменная delta растет?
#include <LiquidCrystal.h> unsigned long moved=0,delta=0,time=0; LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { Serial.begin(9600); lcd.begin(16, 2);// set up the LCD's number of columns and rows } void loop() { time=millis(); if (delta<(time-moved)) { delta=time-moved; moved=time; } Serial.print(delta); Serial.print(" "); Serial.println(time); lcd.setCursor(0, 0); lcd.print(delta); }
Ответ соответствует условию задачи (которого нет): потому что этому способствует условие в строке 14.
Даже если рассуждать не зная условие задачи (а это так и есть), то, например, чем реже мы выполняем строки 16-17, тем больше растет разница между time & moved. Здесь нужно либо вынести moved=time из условия, либо что то, что известно только Вам.
Решено:
Здесь нужно либо вынести moved=time из условия, либо что то, что известно только Вам.
Но Вы уловили условие даже без него. Спасибо.
Додумал сам %) Задача была в засекании времени. Не понимал, почему на один и тот же цикл время растет. Заклинило не слабо.
В этом варианте - измерение максимальной длительности цикла.
Бывает, всех клинит, хоть профессор, хоть студент.