Вопрос про Delay и Millis

Тема в разделе "Arduino & Shields", создана пользователем kt315where, 2 фев 2018.

  1. kt315where

    kt315where Гик

    вопрос - Delay в основном цикле программы сдвигает millis?
     
  2. b707

    b707 Гуру

    нет
    хотя не уверен, что понял вопрос правильно :)
     
    kt315where нравится это.
  3. kt315where

    kt315where Гик

    А я не уверен, что правильно его задал :D

    Короче, если мы делаем таймер использующий millis. Но при этом в loop у нас где-то промелькнет например delay(1000). изменится ли от этого в будущем значение millis ?
     
  4. kt315where

    kt315where Гик

    имею ввиду изменится ли millis относительно реального времени, которое идет в жизни, а не в ардуине
     
  5. DetSimen

    DetSimen Guest

    delay() на ход millis() не влияет.
    на ход millis() влияет запрет прерываний. Ну или если кто регистры Timer0 испортит
     
    kt315where нравится это.
  6. kt315where

    kt315where Гик

    Во, спасибо) это я и хотел узнать
     
  7. DetSimen

    DetSimen Guest

    мог бы и сам проверить

    Код (C++):
    Serial.println(millis());
    delay(1000);
    Serial.println(millis());
     
    vasdor, БАРМАТОГРАФ и kt315where нравится это.
  8. b707

    b707 Гуру

    kt315where - не забывайте только, что если вы используете делай внутри цикла миллис, значение делай должно быть СУЩЕСТВЕННО МЕНЬШЕ интервала, заданного миллис, иначе у вас собьется цикл.
     
    kt315where нравится это.
  9. kt315where

    kt315where Гик

    После того, как я освоил millis, я delay стараюсь вообще нигде не использовать. А вопрос чисто из интереса был.

    так получается delay все-таки может повлиять на работу программы с таймером по millis?
     
  10. b707

    b707 Гуру

    Конечно может. Представьте, что вы таймером на миллис отмеряете интервал в 1 секунду, а внутри этого интервала у вас delay(5000). Будет интервал по миллис отрабатываться правильно? :)

    Но это вовсе не значит, что delay сбивает миллис
     
    kt315where и arkadyf нравится это.
  11. Airbus

    Airbus Радиохулиган Модератор

    Иногда нужен именно delay чтоб код не выполнял отсебятину.Да и в антидребезге без него никак.
     
    kt315where нравится это.
  12. kt315where

    kt315where Гик

    Это Вы про кнопки?
     
  13. Airbus

    Airbus Радиохулиган Модератор

    Ну да
     
  14. AlexU

    AlexU Гуру

    Чой-то вдруг? Прям совсем ни как?